#flask #swagger #flask-restplus #flask-restx
Вопрос:
Я читаю документацию по документации swagger с помощью flask-restx и следую примерам. Я понимаю, что для создания документов swagger для параметров, которые принимает API, я должен сделать
@api.doc(params={'id': 'An ID'})
Однако я не могу найти объяснения того, как документировать тело ответа API. Не код ответа, а результат, возвращаемый, например, методом get. То, что я ищу, — это что-то вроде приведенного ниже:
class MyResource(Resource):
@api.doc(returns={"info": "Some very interesting information"})
def get(self, id):
res = some_function_of_id(id)
return {"info": res}
Кто-нибудь знает, возможно ли это, и если да, то как?
Ответ №1:
Попробуйте декоратор api.response
model = api.model('Model', {
'name': fields.String,
})
@api.route('/my-resource/')
class MyResource(Resource):
@api.response(200, 'Success', model)
@api.response(400, 'Validation Error')
def get(self):
pass
Обратите внимание, что декоратор @api.marshal_with() автоматически документирует ответ..
Комментарии:
1. Это документирует коды ответов, а не результат, возвращаемый API при успешном вызове.
2. Нет, он также документирует результат ответа. Я передаю модель в качестве 3-го параметра, если вы передадите модель, она должна быть задокументирована
3. вот фотография, на которой я пытаюсь сделать это с кодом ответа 400: imgur.com/AlsSlgl