Как написать документацию по API с помощью флешгера, если в моей функции несколько HTTP-методов (GET, POST)?
Я использую Flashgger для написания документации по API, одна из моих функций имеет метод GET и POST. Проблема в том, что Flgger не может различить метод GET и метод POST. Я написал код только для метода post, но он также связывает этот код с методом GET
Я приложил изображение, показывающее код, который я написал, поскольку вы можете видеть, что здесь я написал код, который предназначался только для метода POST, но он также связывает его с методом GET, как показано на втором рисунке.
На этом изображении показан пользовательский интерфейс для метода GET и POST. Как вы можете видеть, что для метода GET он показывает те же результаты, что и для метода POST, хотя я ничего не написал для метода GET.
Я хочу использовать способ docstring для интеграции Swagger в мой код, что мне делать?
1 ответ
Flasgger на самом деле способен различать документы для одной функции, которая работает с различными методами http. Однако он не может создать два отдельных документа из одной строки документов. Решение, предоставленное документацией на флешгер, описано здесь:
@app.route('/api/<string:username>', endpoint='with_user_name', methods=['PUT', 'GET'])
@app.route('/api/', endpoint='without_user_name')
@swag_from('path/to/external_file.yml', endpoint='with_user_name')
@swag_from('path/to/external_file_no_user_get.yml', endpoint='without_user_name', methods=['GET'])
@swag_from('path/to/external_file_no_user_put.yml', endpoint='without_user_name', methods=['PUT'])
... но для этого нужно хранить документы в отдельных файлах.