爱抱

aiohug的Python项目详细描述


空气质量

versionpipeline statuscoverage report

目标:

  • 将aiohttp(>;=3.1)请求解包到带注释的参数
  • 验证处理程序参数
  • 生成夸张的规范

示例

来自path和query的参数

fromaiohttpimportwebfromaiohugimportRouteTableDefroutes=RouteTableDef()@routes.get("/hello/{name}/")asyncdefhello(name:fields.String(),greeting:fields.String()="Hello"):return{"msg":f"{greeting}, {name}"}app=web.Application()app.add_routes(routes)if__name__=="__main__":web.run_app(app)

处理程序签名中不再有request对象-只需要参数。

具有模式的正文

fromaiohttpimportwebfromaiohugimportRouteTableDefroutes=RouteTableDef()classPayloadSchema(Schema):count=fields.Int()@routes.get("/")asyncdefwith_body(body:PayloadSchema()):returnbodyapp=create_app()app.add_routes(routes)client=awaittest_client(app)resp=awaitclient.get("/",json={"count":"5","another":7})assertawaitresp.json()=={"count":5}

另一个快捷方式

@routes.post("/ping/")asyncdefping():return201,"pong"

招摇过市

使用aiohug_swagger包。

装饰师

由于aiohttp路由的方式,所有装饰器都可以工作到资源处理程序 必须在aiohug的路由修饰符(即

之前应用
defsome_decorator(func):@wraps(func)defwrapper(request,*args,**kwargs):# Some logic for decoratorreturnfunc(*args,**kwargs)returnwrapper@routes.get("/ping/")@some_decoratorasyncdefhello():return"pong"

此外,确保使用functools模块中的wrapsdecorator装饰包装函数 -否则aiohug将无法访问原始处理程序的参数和注释。

为什么要这样?

这只是aiohttp

hugapi实现

待办事项:

  • 不传递默认参数

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
多线程线程在java中初始化为null   web应用程序的java功能,用于处理用户从SFTP服务器下载文件的请求   连接如何在Java中连接两个字符串数组   java如何正确使用Actionlistener事件的输入   [JPA][JBoss7.1]Java为两个带有JPA注释的表扩展了class 2 Id   在java中计算十进制值时遇到问题   java自动生成的捆绑包文件不是在使用I18N4Vaadin的Vaadin项目中创建的   java Spring控制器向ajax请求返回视图或空字符串   java扫描器在我的机器上不工作   java如何获取应用程序二进制文件的路径?   javac:输出值行为   如何在没有身份验证的情况下使用Google电子表格API Java库获取公共Google电子表格数据   java管理多个传出TCP连接   java无法为安卓:onClick执行方法。添加到数据库   JAVA文件中的ubuntu JFlex编译错误   java是执行各种字符串操作的有效方法   java发送文件和json Spring引导和角度   REST+DAO对象的java Mockito   java SocketException:两个客户端并行运行时连接重置