最近啊,我发现了一款号称是下一代高性能的 Api 开发工具,它就是 Hug。
相比 Django、Flask、FastApi 等 Api 开发工具,Hug 到底有何特点和优势呢?
今天我就一起来看上一看。
Hug 的核心就是极大地简化 Api 的开发,对比 Flask 更加简单。
Api 开发极其简单Hug Api 写测试也会变得简单Api 技术的基础结果就是,
Hug基于Falcon的高性能HTTP框架,仅支持Python@3
pip install hug --upgrade代码

启动服务

Hug 在本地 8000 端口为我们启动了开发服务器,我们访问http://localhost:8000看看效果

感叹一句,
So Easy!
上面,我们定义了 happyNewYear 方法是绑定在根路径上的,Hug 允许我们可以不绑定路径。
默认的,
Hug在我们修改代码后会自动Reload。
代码(仅仅去掉了装饰器的路径参数)

访问http://localhost:8000的效果

虽然没有定义路径,但是 Hug 为我们提供了友好的 404,而且告知你可以访问的路径的 URI,请求方式,例子和输出。
我们尝试根据 Hug 的提示修改请求路径为http://localhost:8000/happyNewYear后看看效果

当然,定义路径和不定义路径在同一个方法中是不能混合使用的。
和大多数的 Api 框架一样,这些基本功能都是支持的,本文我们仅以 Hug 路径参数用法作为代表展示一下。
代码

效果

在 Hug 中对接口版本进行管理和定义特别简单和方便,只要在 Hug 的装饰器中增加 version 参数即可。
代码

效果


如上,利用
Hug我们可以很方便地对Api的版本号进行管理和重构。
上面我们说了 Hug 除了能够让开发简单,也能够让测试简单,现在我们就一起使用 Hug 来测试 Hug。
测试代码
import hug
import demo
from hug import HTTP_200
def testHpny():
'''
@api_or_module: Api模块,即api文件
@url: 即Url,去除host和port的部分
'''
resp = hug.test.get(api_or_module=demo,url='/v1/Python研究所的朋友们')
# 打印影响状态和响应数据
print(resp.status,resp.data)
# 断言
assert resp.status == HTTP_200
assert resp.data != None
if __name__ == '__main__':
testHpny()执行测试

Hug不但将Api开发变得简单,还将Api的测试集成进来,真正做到了可以让开发者可以快速开发高质量的Api。