Возвращаемые значения не отображаются в Swagger-UI - PullRequest
0 голосов
/ 05 марта 2020

Я создал очень простую демонстрацию, чтобы продемонстрировать, что возвращаемые значения не отображаются в swagger-ui:

Requirements.txt

flask-apispec
flask-marshmallow
flask-restful

Версии:

apispec==3.3.0
Flask==1.1.1
flask-apispec==0.8.6
flask-marshmallow==0.11.0
Flask-RESTful==0.3.8
marshmallow==3.5.0
webargs==5.5.3

Код:

from apispec import APISpec
from apispec.ext.marshmallow import MarshmallowPlugin
from flask import Flask
from flask_apispec import use_kwargs, marshal_with, FlaskApiSpec, MethodResource
from flask_marshmallow import Marshmallow
from flask_restful import Api
from marshmallow import fields

app = Flask(__name__)
api = Api(app)
ma = Marshmallow(app)


class Todo:
    def __init__(self, todo_id, description):
        self.todo_id = todo_id
        self.description = description

    def __getitem__(self, item):
        return getattr(self, item)


class TodoInputSchema(ma.Schema):
    token = fields.Str()


class TodoSchema(ma.Schema):
    class Meta:
        fields = ("todo_id", "description")


class Demo(MethodResource):
    def __init__(self):
        super(Demo, self).__init__()

    @use_kwargs(TodoInputSchema)
    @marshal_with(TodoSchema, code=200)
    def get(self):
        schema = TodoSchema()
        todo = Todo(1, "get Milk")
        return schema.dump(todo)


api.add_resource(Demo, '/')
app.config.update({
    'APISPEC_SPEC': APISpec(
        title='todo',
        version='v1',
        plugins=[MarshmallowPlugin()],
        openapi_version='3.0.2'
    ),
    'APISPEC_SWAGGER_URL': '/swagger/',
})
docs = FlaskApiSpec(app)

docs.register(Demo)

if __name__ == '__main__':
    app.run(debug=True, port=3333)

Запуск: http://127.0.0.1: 3333 / swagger -ui

Почему возвращаемый объект не отображается в Swagger UI?

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...