首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在flask-restplus中实现同时具有上载和有效负载的rest

如何在flask-restplus中实现同时具有上载和有效负载的rest
EN

Stack Overflow用户
提问于 2018-12-24 01:02:14
回答 1查看 466关注 0票数 1

我有下面的flask-restplus代码。

POST请求生成允许上传文件的Swagger UI。

然后,我希望PUT请求还允许从Swagger UI上传文件,并提供有效负载主体。

对于这段代码,Swagger UI生成了一个文件浏览和上传输入字段和一个json body有效负载。

问题是PUT请求的api.payload返回None。

如果删除@api.expect(upload_parser),api.payload将返回由amazon_data_csv_update_model定义的字段。

我做错了什么?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-10-24 04:39:58

在您的代码中,它应用了两个expect来放入。在这种情况下,忽略第二个expect,即使它在浏览器上显示。因此,您能够获得第一个expect的值。据我所知,它能够在一个端点中应用两个expect。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53905477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档