OpenAPI v3如何声明带boundary的嵌套multipart/mixed请求体
解决OpenAPI v3中multipart子部分带boundary参数的声明问题
正确的OpenAPI声明方式
直接保留contentType: multipart/mixed即可,无需改用通配符。根据HTTP规范,multipart/mixed; boundary=xxx属于multipart/mixed媒体类型的合法变体,boundary是multipart类型的必填参数,OpenAPI规范默认允许这类附加参数存在,不需要在声明里额外指定。修正后的完整示例:
requestBody: content: multipart/form-data: schema: type: object properties: metadata: type: object # 可补充metadata的具体属性,示例: properties: file_name: type: string data: type: object encoding: metadata: contentType: application/json # 按实际格式调整,比如application/xml等 data: contentType: multipart/mixed关于请求被拒绝的原因
这一般是你使用的API校验工具对媒体类型的匹配逻辑过于严苛,没有遵循HTTP规范忽略媒体类型的附加参数。可以查看工具文档,确认是否有配置项可放宽媒体类型的校验规则。为什么
multipart/*无效
OpenAPI的contentType字段不支持将通配符作为媒体类型的匹配规则,它会把multipart/*当作普通字符串处理,因此这种写法无法解决问题。
内容的提问来源于stack exchange,提问作者Bolchojeet
相关产品推荐
相关产品推荐

