用于生成开放式api规范的装饰器和函数库
oapispec的Python项目详细描述
OpenAPI规范生成器
Python库用于从装饰器生成swagger文档。不会破坏你的请求,不会改变你的中间件,不会把脏兮兮的小手放在不属于它们的地方。您可以装饰函数,将它们注册到模式中,然后生成一个swagger文档。在
安装
使用PyPI
->;oapispec
@https://pypi.org/project/oapispec
入门
在这个非常简化的示例中,生成模式得到的spec
是一个有效的swaggerdict/json规范,可以在swaggerui中使用。在
fromhttpimportHTTPStatusimportoapispecasoapischema=oapi.schema(metadata=dict(version='4.2.0',title='Super API'))@oapi.doc.namespace('Health Check')@oapi.doc.route('/ping')@oapi.doc.method('GET')defping():passspec=schema.register(ping).generate()
其中spec等于vvv低于vvv。使用oapispec
可以向规范中添加更多详细信息
创建模型
在本例中,我们创建一个模型,并将其用作POST
请求的预期参数。在
book_model=oapi.model.Model('Book',{'title':oapi.fields.string(required=True),'author':oapi.fields.string(required=True),'genre':oapi.fields.string(),'edition':oapi.fields.integer(),'isInPrint':oapi.fields.boolean()})@oapi.doc.namespace('Book')@oapi.doc.route('/book')@oapi.doc.method('POST')@oapi.doc.response(HTTPStatus.CREATED.value,HTTPStatus.CREATED.description,book_model)@oapi.doc.expect(book_model)defadd_book():passspec=schema.register(add_book).generate()
更多示例
最好的地方是tests/end_to_end_test.py中的end_to_end
测试。这始终是最新的,作为一个强有力的例子和测试什么是可能的。请注意,您可以在tests/assets/expected_full_schema_result.json中看到生成架构的预期输出。这可以让您了解doc decorator是如何工作的(包括它们自己和一起)来生成openapi规范的
贡献和问题
两者都是受欢迎和鼓励的!对于您在github中添加问题的任何问题。如果您对贡献感兴趣,请查看contributing doc。如果您对贡献感兴趣,您可能想知道如何在本地运行/测试/修改项目,以便签出developing doc
- 项目
标签: