从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"
}
```
希望您喜欢它!
从源代码(集成了`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的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 92737d543dd8b481964ba3871493f1c7cf8ca126bb3e1fcd99aa302fd09f809d |
|
MD5 | 8dd4da75d45a3b96e4054a163ffc988b |
|
BLAKE2b-256 | 742943f85d3181680dc13fedba842a7e01d662b5e6cfd0d686d71bdd92af4bce |