我正在寻找一种从Python服务定义生成Swagger规范(JSON和Swagger-UI)的方法。我找到了很多选项(通常是基于Flask的),但它们都使用注释,我无法在代码中正确处理,例如在循环中定义10个具有不同路由的等效服务(在此示例中可以对处理程序进行处理,首先调用函数来获取它)。
如果没有注释,有没有办法做到这一点?我想通过调用函数(或类的方法或构造函数)来生成API及其文档中的方法,其中的值与该API方法的实现和文档相对应。
答案 0 :(得分:0)
我建议调查apispec。
apispec是一个可插拔的API规范生成器。
目前支持OpenAPI 2.0规范(f.k.a. Swagger 2.0)
<强> apispec 强>
from apispec import APISpec
spec = APISpec(
title='Gisty',
version='1.0.0',
info=dict(description='A minimal gist API')
)
spec.definition('Gist', properties={
'id': {'type': 'integer', 'format': 'int64'},
'content': {'type': 'string'},
})
spec.add_path(
path='/gist/{gist_id}',
operations=dict(
get=dict(
responses={
'200': {
'schema': {'$ref': '#/definitions/Gist'}
}
}
)
)
)