Python Module — WSME

网友投稿 759 2022-05-30

目录

文章目录

Python Module — WSME

目录

WSME

WSME 的使用

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 个装饰器:

@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

2

3

4

5

6

@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): ...

1

2

3

4

5

6

7

8

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

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:合并后的Mp4里解析出音频的Duration问题
下一篇:ROS1/2机器人多机网络通信配置-更新-2022
相关文章