自动将函数或者命令行工具转换成 Web 服务

大家好,我是你们的章鱼猫。

今天要给大家介绍一个牛逼的功能 webify,它能够直接将函数或者命令行工具转化为 Web 服务。比如我们将 jq 封装成一个 Web 服务如下:

webfiy 是一个非常基础的 CGI 服务,所有的请求都会路由到这个 CGI 脚本上。最初的设计目标是希望能够尽可能的做到零配置。webify 通过调用需要封装的命令行脚本,然后将请求的 body 传入标准输入 stdin。然后标准输出 stdout 像 HTTP 响应一样回传到 client 调用方。过程中如果封装的脚本返回了非 0 的结果,则 HTTP 请求会返回 500。

其实现在有不少的 serverless 的框架也是使用类似的机制来处理服务之间的交互。对于使用者来说只需要关注其自身的逻辑,其他的都交给框架和基础设施来处理。

整体使用上比较简单,我们来看一个 Python 的例子。

  1. 首先假设我们有一个路径查找的函数,如下:

    image-20200927193901518

  2. 连接 stdin 和 stdout

    image-20200927194011738

  3. 本地 shell 测试

    image-20200927194026780

  4. 通过 webify 转化为 Web 服务

    image-20200927194038709

更多项目详情请查看如下链接。

开源项目地址:https://github.com/beefsack/webify


更多精彩请扫码关注如下公众号。

Written on September 27, 2020