以翘曲速度从zserio服务创建python模块的便利功能。
zswag的Python项目详细描述
Zswag公司
以翘曲速度从zserio服务创建python模块的便利功能。 将Zserio服务翻译/验证为OpenAPI/Swagger,并在Flask/Connexion WSGI应用程序中提供服务。在
安装
快跑
pip3 install zswag
或者,克隆此存储库,然后运行
^{pr2}$运行远程计算器测试示例
PYTHONPATH=$PWD/test python3 -m calc server & python3 -m calc client
从zserio创建一个招摇过市的服务
ZserioSwaggerApp
赋予你嫁给用户编写的应用程序控制器的能力
使用zserio生成的app server类(参数解析器/响应序列化器)
以及一个合适的OpenAPI规范
示例
importzswagimportzserioimportmy.app.controllerzserio.generate("myapp/service.zs","myapp")frommyapp.serviceimportService# The OpenApi argument `yaml_path=...` is optionalapp=zswag.ZserioSwaggerApp(my.app.controller,Service)
在这里,API端点被路由到my/app/controller.py
,
可能如下所示:
# Written by youdefmyApi(request):return"response"# Injected by ZserioSwaggerApp# _service = Service()# _service.myApi = lambda request: _service._myApiMethod(request)# _service._myApiImpl = my.app.controller.myApi
注意:当前生成的服务器使
zserio RPC方法参数应为Base64编码
名为requestData
的字符串,放在URL查询部分。
计划在将来的版本中使其更加灵活。在
使用客户机
如果您有一个名为my.package.Service
的服务,那么zserio
将自动为下的服务生成客户端
my.package.Service.Client
。这个客户端可以实例化唉。。。在
frommy.packageimportServiceimportzswag_clientclient=Service.Client(zswag_client.HttpClient(spec=f"http://localhost:5000/openapi.json"))
zswag.HttpClient
提供zserio期望的服务客户端接口。
它从openapiyaml或JSON规范中读取服务的HTTP细节
必须位于给定路径或URL下。
有关HttpClient
构造函数的更多选项,请查看它的doc string。在
招摇过市用户界面
如果已安装pip install connexion[swagger-ui]
,则可以查看
[/prefix]/ui
下服务的API文档。在
OpenAPI YAML规范
YAML文件位置/自动生成
- 如果指定一个不存在的文件的非空路径,OpenAPI规范将在该位置自动生成。在
- 如果指定空的YAML路径,则YAML文件将放在
<service>.zs
源文件。在 - 如果指定现有文件,
zswag
将只验证 zserio服务中指定的所有方法也反映在 OpenAPI规范
OpenAPI规范选项
选项概述
ZserioSwaggerApp
和{
- HTTP方法
- 参数格式
- Server URL基路径
选项:HTTP方法
要更改HTTP方法,只需放置所需的方法 作为方法路径下的键,例如在下面的示例中:
paths:/methodName:{get|post|put|patch|delete}:...
选项:Base64 URL参数格式
要使用Base64 URL参数格式,请使用方法规范中下面的代码片段
parameters:-description:''in:queryname:requestDatarequired:truex-zserio-request-part:"*"# The parameter represents the whole zserio request objectschema:format:bytetype:string
选项:二进制体参数格式
要使用二进制体参数格式,请使用方法规范中下面的代码段并删除requestData
参数。在
requestBody:content:application/x-zserio-object:schema:type:string
选项:服务器URL基路径
OpenAPI允许规范中的servers
字段列出URL路径前缀
在它下可以到达指定的API。一个zswag_client.HttpClient
实例查看此列表并确定其使用的URL基路径
此列表中的第一个条目。示例条目可能如下所示:
servers:
- http://unused-host-information/path/to/my/api
然后,zswag_client.HttpClient
将使用指定的主机调用方法
和端口,但前缀为/path/to/my/api
字符串。在
文档提取
当OpenAPI/Swagger YAML自动生成时,ZserioSwaggerApp
尝试填充服务/方法/参数/结果描述
从zserio源中提取的doc字符串。在
对于结构和服务,文档应该是
在声明前面用/*! .... !*/
标记括起来:
/*!### My Markdown Struct DocI choose to __highlight__ this word.!*/structMyStruct{...}
对于服务方法,解析单行文档字符串 在声明之前:
/** This method is documented. */ReturnTypemyMethod(ArgumentType);
- 项目
标签: