Ang*_* G. 10 flask swagger-ui marshmallow flask-restx
我正在尝试使用flask-restx 和marshmallow 创建一个安静的网络服务。
我使用棉花糖进行请求和响应验证。
由于 Flask-restx api 文档不支持 swagger ui 中的棉花糖模式,我想使用 doc 装饰器添加它。
控制器代码:
@ns.route('/')
class Test(Resource):
@ns.doc(params={'test': 'test'})
def get(self):
_input_schema = MySchema()
errors = _input_schema.validate(request.args)
if errors:
return Response(str(errors), status=400)
other_things()
Run Code Online (Sandbox Code Playgroud)
架构代码:
class MySchema(Schema):
title = fields.Str()
id = fields.Integer()
slug = fields.Str()
Run Code Online (Sandbox Code Playgroud)
我正在尝试自动将参数从 schema 添加到 api 文档,如下所示
@ns.doc(params=MySchema.ReturnAFieldDict())
Run Code Online (Sandbox Code Playgroud)
它会给出类似的东西
@ns.doc(params={"title":"A string", "id": "Int value with min and max", "slug":"A str"})
Run Code Online (Sandbox Code Playgroud)
有什么办法可以做到这一点吗?
Has*_*fan -1
您可以使用 api.marshal_with 来记录响应
from flask_restx.fields import Integer, String
test_get = api.model(
"TestGet",
{
"name": String(required=True),
"age": Integer(required=True),
},
)
@api.marshal_with(schema.test_get, code=200)
def get(self):
return {"name": "test", "age": 123}
Run Code Online (Sandbox Code Playgroud)
marshal_with 映射返回的字典或对象,并根据架构映射字段。在这种情况下,返回的字典将映射到 test_get 模式,其中名称为“test”,年龄为 123。
| 归档时间: |
|
| 查看次数: |
4481 次 |
| 最近记录: |