从没有注释的Python代码生成Swagger规范

时间:2016-09-29 03:11:24

标签: python web-services python-3.x swagger-ui swagger-2.0

我正在寻找一种从Python服务定义生成Swagger规范(JSON和Swagger-UI)的方法。我找到了很多选项(通常是基于Flask的),但它们都使用注释,我无法在代码中正确处理,例如在循环中定义10个具有不同路由的等效服务(在此示例中可以对处理程序进行处理,首先调用函数来获取它)。

如果没有注释,有没有办法做到这一点?我想通过调用函数(或类的方法或构造函数)来生成API及其文档中的方法,其中的值与该API方法的实现和文档相对应。

1 个答案:

答案 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'}
                }
            }
        )
    )
)