跳转到主要内容

从flask应用程序的源代码和文档字符串中提取swagger规范

项目描述

# flask-swagger-plus
从源代码(集成了`Form`和`Schema`组件)中提取swagger规范。


简单示例
```python
from flask import Flask, jsonify
from flask.views import MethodView
from flask_swagger_plus import Form, SwaggerResponse, StringField, form, swagger
from marshmallow import Schema, fields

class ParamsForm(Form)
email = StringField()
name = StringField()

class AddressSchema(Schema)
street = fields.Str()
state = fields.Str()
country = fields.Str()

class UserAPI(MethodView)

@ParamsForm
@SwaggerResponse(AddressSchema)
def post(self)
"""
创建一个新用户
---
"""
print(form.email)
print(form.name)
return {
'street': 'street',
'state': 'state',
'country': 'country'
}


app = Flask(__name__)

app.add_url_rule('/users/', view_func=UserAPI.as_view('show_users'))


@app.route('/swagger.json')
def spec()
return jsonify(swagger(app))

if __name__ == '__main__'
app.run(debug=True)
```

**文档字符串**必须包含 _---_,这样我们才能知道您是否想要将API导出为swagger规范。
如果您更喜欢使用装饰器风格的路由注册,它也适用。
```python
@app.route('/post_user')
@ParamsForm
@SwaggerResponse(AddressSchema)
def post_user()
"""
创建用户
---
"""
return {}
```

/swagger.json的JSON结果将如下所示
```
{
"definitions": {
"__main__post:AddressSchema": {
"properties": {
"country": {
"type": "string"
},
"state": {
"type": "string"
},
"street": {
"type": "string"
}
}
}
},
"info": {
"title": "Cool product name",
"version": "0.0.0"
},
"paths": {
"/users/": {
"post": {
"description": "",
"parameters": [
{
"description": "",
"in": "formData",
"name": "email",
"type": "string"
},
{
"description": "",
"in": "formData",
"name": "name",
"type": "string"
}
],
"responses": {
"200": {
"description": "API结果",
"schema": {
"$ref": "#/definitions/__main__post:AddressSchema"
}
}
},
"security": [],
"summary": "创建新用户",
"tags": [
"__main__"
]
}
}
},
"swagger": "2.0"
}
```

希望您喜欢它!

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

flask-swagger-plus-0.0.3.tar.gz (8.4 kB 查看哈希)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页