Stoplight使用multipart/form-data设置Content-Type报错如何解决
multipart/form-data 同时传文件和JSON对象的Stoplight配置方案
现有配置的核心错误
- 拼写错误:
encoding.data.contentType的值写为apllication/json,正确拼写为application/json,缺了一个字母p,会导致工具无法识别该分段的内容类型。 - 空对象定义无效:
data字段仅声明type: object但未定义具体属性结构,Stoplight的表单渲染引擎无法识别无结构对象的序列化规则,直接触发参数校验错误。
正确配置示例
content: multipart/form-data: schema: type: object required: - files - data properties: files: # 单文件上传用下面两行配置 # type: string # format: binary # 多文件上传用下面三行配置 type: array items: type: string format: binary data: type: object # 必须补全和后端接收规则一致的JSON对象属性 properties: # 以下字段替换为你实际业务需要的字段 bizId: type: string userName: type: string status: type: integer required: - bizId encoding: data: contentType: application/json # 修正拼写错误
验证与兜底方案
- 配置保存后刷新Stoplight页面,请求体区域会自动将
files渲染为文件选择控件,data渲染为结构化JSON编辑框,和Postman的操作逻辑一致。 - 发送请求前可查看请求原始报文,确认
data对应的form-data分段头包含Content-Type: application/json即可正常调用。 - 若使用旧版本Stoplight仍存在兼容问题,可将
data字段临时改为type: string,调用时手动传入序列化后的JSON字符串,后端接收后做一次反序列化即可,这是兼容所有OpenAPI工具的通用兜底方案。
内容的提问来源于stack exchange,提问作者Golam Wasy Arnob
相关产品推荐
相关产品推荐

