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

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

网络异常,图片无法展示
|


前言


最近啊,我发现了一款号称是下一代高性能的 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 在本地 8000 端口为我们启动了开发服务器,我们访问


http://localhost:8000看看效果

网络异常,图片无法展示
|


感叹一句,So Easy!


小彩蛋


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


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


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



网络异常,图片无法展示
|


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


网络异常,图片无法展示
|


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


我们尝试根据 Hug 的提示修改请求路径为

http://localhost:8000/happyNewYear后看看效果


网络异常,图片无法展示
|


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


路径参数


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


代码


网络异常,图片无法展示
|


效果

网络异常,图片无法展示
|


Api 版本管理


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


代码


网络异常,图片无法展示
|


效果


网络异常,图片无法展示
|


网络异常,图片无法展示
|


如上,利用 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


参考:hugapi.github.io/hug/

相关文章
|
1月前
|
缓存 监控 API
Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架
Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架
58 0
|
7月前
|
NoSQL API Redis
高性能分布式API网关Kong2
高性能分布式API网关Kong2
458 2
|
7月前
|
Java 应用服务中间件 API
高性能分布式API网关Kong1
高性能分布式API网关Kong1
753 2
|
弹性计算 算法 Java
开放内网API接口的低代码开发工具和解决方案
开放内网API接口,有什么好的免开发或低代码解决方案吗?
|
前端开发 JavaScript API
PHP 基于 SW-X 框架,搭建高性能API架构(五)
本章节学习在SW-X框架中,如何过滤404请求,并使用注解限制请求类型,使用Validate验证器组件过滤表单数据。
|
缓存 中间件 API
PHP 基于 SW-X 框架,搭建高性能API架构(四)
中间件属于AOP切面编程的衍生,SW-X中的中间件可以通过绑定路由地址,实现控制器无切入的关联绑定。在中间件中,可以进行请求拦截(前置操作)、或者请求缓存销毁(后置操作)等业务。
PHP 基于 SW-X 框架,搭建高性能API架构(三)
在SW-X中,Restful组件是对API返回值结构的封装支持。 \x\Restful类支持定义返回值的结构、Code->Msg关联、返回值强类型转换、抛出的数据类型转换、响应的请求头定义(跨域支持)。
|
前端开发 API PHP
PHP 基于 SW-X 框架,搭建高性能API架构(二)
开发阶段中,对swoole项目启动自动热更新代码是很有必要的,不然每次更新了代码,都需要手动reload一次服务。SW-X的热重载除了对框架配置文件、公共函数、Swoole-Event事件无效外,其他文件的修改都有效。
|
存储 前端开发 中间件
|
16天前
|
缓存 前端开发 API
API接口封装系列
API(Application Programming Interface)接口封装是将系统内部的功能封装成可复用的程序接口并向外部提供,以便其他系统调用和使用这些功能,通过这种方式实现系统之间的通信和协作。下面将介绍API接口封装的一些关键步骤和注意事项。