由于OAS中请求的MIME定义错误导致的connexion报错

今天在使用connexion开发接口过程中,不断报错:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.8/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.8/dist-packages/connexion/decorators/decorator.py", line 68, in wrapper
    response = function(request)
  File "/usr/local/lib/python3.8/dist-packages/connexion/decorators/uri_parsing.py", line 149, in wrapper
    response = function(request)
  File "/usr/local/lib/python3.8/dist-packages/connexion/decorators/validation.py", line 145, in wrapper
    if all_json(self.consumes):
  File "/usr/local/lib/python3.8/dist-packages/connexion/utils.py", line 167, in all_json
    return all(is_json_mimetype(mimetype) for mimetype in mimetypes)
  File "/usr/local/lib/python3.8/dist-packages/connexion/utils.py", line 167, in <genexpr>
    return all(is_json_mimetype(mimetype) for mimetype in mimetypes)
  File "/usr/local/lib/python3.8/dist-packages/connexion/utils.py", line 141, in is_json_mimetype
    maintype, subtype = mimetype.split('/')  # type: str, str

而且是在接收到请求,但还没进入controller函数的时候发生的
打印出mimetypes变量后发现,该值为[‘body’],经过不断的分析,最终发现问题根源出在swagger文件中。
在这里插入图片描述
上图中的body,即为下图中的body。
在这里插入图片描述
原来body的位置不仅仅是标签的作用,更是MIME
https://swagger.io/docs/specification/describing-request-body/
在这里插入图片描述
所以这里不能随意自定义
把之前自定义的’body’,改为’application/json’就正常了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值