关键词搜索

源码搜索 ×
×

Python Module — WSME

发布2022-01-14浏览1382次

详情内容

目录

WSME

WSME(Web Service Made Easy)是一个 RESTful API Service Typing 库,用于对 HTTP Request Body、Response Body、Response Status Code 进行规范化的校验和约束。

WSME 的设计理念是:在大多数情况下,Web Services 对输入/输出数据类型的要求都是严格的。

  • 官方文档:https://wsme.readthedocs.io/en/latest/index.html

WSME 的使用

WSME 提供了 2 个装饰器

  1. @signature:用来描述一个方法或函数的输入/输出数据类型。注意,大多数情况下不建议直接使用该装饰器,而是使用为不同的 Web 框架进行封装的 @wsexpose。
class wsme.signature([return_type, [arg0_type, [arg1_type, ..., ]]]body=None, status_code=None)
# return_type – Type of the value returned by the function
# argN – Type of the Nth argument
# body – If the function takes a final argument that is supposed to be the request body by itself, its type.
# status_code – HTTP return status code of the function.
# ignore_extra_args – Allow extra/unknow arguments (default to False)
    1. @wsexpose:包含了 @signature 的功能,也具有相同的形参列表,同时还会把方法或函数的 Route Infors 暴露给 Web 框架,类似于 Pecan 提供的 @expose 装饰器,被装饰的方法或函数可以被 Controller Router 找到。
    # wsmeext.pecan.wsexpose(return_type, *arg_types, **options)
    @wsexpose(ResponseBodyType,
              Param01Type, Param02Type, ..., Param0NType,
              body=RequestBodyType,
              status_code={{ successfully_status_code_num }},
              ignore_extra_args=True)
    def http_method(self, param01, param02, ..., param0N, body):
        ...
    
      7
    • 8

    NOTE:对于 Error 或 Exception 的 Response Context 和 Status Code,通常直接在 raise exceptions 中定义,由 Pecan 框架捕获之后进行响应,而不会经过 WSME 的处理,所以 WSME 也没有这方面的逻辑。

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载