前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >下一代高性能Api开发工具

下一代高性能Api开发工具

作者头像
Python研究所
发布2022-06-17 08:17:19
1830
发布2022-06-17 08:17:19
举报
文章被收录于专栏:大飞的部落阁

前言

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

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

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

关于 Hug

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

Hug 的初衷

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

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

实践(看看有多简单)

安装 Hug

代码语言:javascript
复制
pip install hug --upgrade

demo

代码

Hug代码
Hug代码

启动服务

启动服务
启动服务

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

效果
效果

感叹一句,So Easy!

小彩蛋

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

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

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

无路径参数的代码
无路径参数的代码

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

404友好
404友好

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

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

方法名即路径
方法名即路径

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

路径参数

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

代码

带路径参数的代码
带路径参数的代码

效果

带路径参数的效果
带路径参数的效果

Api 版本管理

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

代码

定义了Api版本的代码
定义了Api版本的代码

效果

v1版本代码效果
v1版本代码效果
v2版本代码效果
v2版本代码效果

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

测试 Hug Api

上面我们说了 Hug 除了能够让开发简单,也能够让测试简单,现在我们就一起使用 Hug 来测试 Hug

测试代码

代码语言:javascript
复制
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/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 关于 Hug
    • Hug 的初衷
    • 实践(看看有多简单)
      • 安装 Hug
        • demo
          • 小彩蛋
          • 路径参数
          • Api 版本管理
          • 测试 Hug Api
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档