目 录CONTENT

文章目录

下一代高性能Api开发工具

phyger
2022-02-20 / 0 评论 / 1 点赞 / 1,901 阅读 / 1,235 字 / 正在检测是否收录...

前言

最近啊,我发现了一款号称是下一代高性能的 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代码

启动服务

启动服务

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

效果

感叹一句,So Easy!

小彩蛋

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

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

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

无路径参数的代码

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

404友好

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

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

方法名即路径

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

路径参数

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

代码

带路径参数的代码

效果

带路径参数的效果

Api 版本管理

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

代码

定义了Api版本的代码

效果

v1版本代码效果

v2版本代码效果

如上,利用 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 开发变得简单,还将 Api 的测试集成进来,真正做到了可以让开发者可以快速开发高质量的 Api

参考:https://hugapi.github.io/hug/

1

评论区