Как я могу реализовать отдых, который имеет и загрузку и полезную нагрузку в flask-restplus - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть следующий код для flask-restplus.

Запрос POST генерирует интерфейс Swagger, который позволяет загружать файл.

Затем я хочу, чтобы запрос PUT также разрешил загрузку файла из пользовательского интерфейса Swagger и также предоставил тело полезной нагрузки.

Для этого кода пользовательский интерфейс Swagger создается с просмотром и загрузкой файловполе ввода и полезная нагрузка тела json.

enter image description here

Проблема заключается в том, что api.payload запроса PUT возвращает None.

Если яудалите @api.expect(upload_parser), api.payload возвращает поля, определенные amazon_data_csv_update_model.

Что я делаю не так?

upload_parser = reqparse.RequestParser()
upload_parser.add_argument('file', location='files', type=FileStorage, required=True)


amazon_data_csv_update_model = api.model('AmazonDataCSVUpdateModel', {
    'uuid_to_update': fields.String(description='The UUID of the file to update', required=True)
})

@api.route('/amazon-data/upload')
@api.expect(upload_parser)
class AmazonDataCSVUpload(Resource):

    def post(self):
        upload_args = upload_parser.parse_args()
        uploaded_csv_file = upload_args['file']  # This is FileStorage instance
        json_uuid = AmazonHandler.upload_amazon_data_csv(uploaded_csv_file)
        return {'amazon_data_uuid': json_uuid}, 201

    @api.expect(amazon_data_csv_update_model)
    def put(self):
        put_payload = request.json
        print(put_payload)
        put_payload = api.payload
        print(put_payload)
        upload_args = upload_parser.parse_args()
        uploaded_csv_file = upload_args['file']  # This is FileStorage instance
        json_uuid = AmazonHandler.upload_amazon_data_csv(uploaded_csv_file, uuid)
        return {'amazon_data_uuid': json_uuid}, 200
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...