likes
comments
collection
share

Hug | 下一代高性能Api开发工具

作者站长头像
站长
· 阅读数 12

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」。

前言

最近啊,我发现了一款号称是下一代高性能的 Api 开发工具,它就是 Hug

相比 Django、Flask、FastApiApi 开发工具,Hug 到底有何特点和优势呢?

今天我就一起来看上一看。

关于 Hug

Hug 的核心就是极大地简化 Api 的开发,对比 Flask 更加简单。

Hug 的初衷

  • Api 开发极其简单
  • 鼓励程序员编写自我记录的代码
  • 快,让开发人员不会因为性能而选择其他框架
  • 根据 Hug Api 写测试也会变得简单
  • 将问题在框架中解决,而不是让用户去解决
  • 称为下一代 Api 技术的基础

结果就是,Hug 基于 Falcon 的高性能 HTTP 框架,仅支持 Python@3

实践(看看有多简单)

安装 Hug

pip install hug --upgrade

demo

代码

Hug | 下一代高性能Api开发工具

启动服务

Hug | 下一代高性能Api开发工具

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

Hug | 下一代高性能Api开发工具

感叹一句,So Easy!

小彩蛋

上面,我们定义了 happyNewYear 方法是绑定在根路径上的,Hug 允许我们可以不绑定路径。

默认的,Hug 在我们修改代码后会自动 Reload

代码(仅仅去掉了装饰器的路径参数)

Hug | 下一代高性能Api开发工具

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

Hug | 下一代高性能Api开发工具

虽然没有定义路径,但是 Hug 为我们提供了友好的 404,而且告知你可以访问的路径的 URI,请求方式,例子和输出。

我们尝试根据 Hug 的提示修改请求路径为http://localhost:8000/happyNewYear后看看效果

Hug | 下一代高性能Api开发工具

当然,定义路径和不定义路径在同一个方法中是不能混合使用的。

路径参数

和大多数的 Api 框架一样,这些基本功能都是支持的,本文我们仅以 Hug 路径参数用法作为代表展示一下。

代码

Hug | 下一代高性能Api开发工具

效果

Hug | 下一代高性能Api开发工具

Api 版本管理

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

代码

Hug | 下一代高性能Api开发工具

效果

Hug | 下一代高性能Api开发工具

Hug | 下一代高性能Api开发工具

如上,利用 Hug 我们可以很方便地对 Api 的版本号进行管理和重构。

测试 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开发工具

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

参考:hugapi.github.io/hug/