用于生成开放式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可以向规范中添加更多详细信息

^{pr2}$

创建模型

在本例中,我们创建一个模型,并将其用作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

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

推荐PyPI第三方库


热门话题
具有未知数量条件的java If语句   java如何在Spark中使用两个“条件”进行过滤?   雅加达ee为ColdFusion提供的最佳Java ee服务器   java如何在jersey的MessageBodyWriter方法中获取writeTo中的anotations值?   java从脚本文件调用jar文件中的函数   java在执行insert语句后,如何获得id值为的语句?   在OS X上设置OpenCV Java绑定   java使用for循环遍历数组x。以字符串形式返回x的元素,其中每个元素由一个空格分隔   ApacheiClientBuilder为Algolia Java创建的APIClient是线程安全的吗?   java在DFS/BFS算法中获取邻居时避免内存分配?   java使用AES/CBC/PKCS5P加密大文件(2GB)   允许保存/加载列布局的Java DB网格组件   队列大小为1的java Spring调度   跑步带有Java参数的exe   java正则表达式将所有“<”和“>”标记替换为“&lt;”及“&gt;”在<<![CDATA]>标签?   java何时同步变量?