OpenAPI中multipart/form-data类型POST请求体examples字段定义方法咨询
解决OpenAPI中multipart/form-data请求示例的配置问题
嗨,我来帮你搞定这个OpenAPI里multipart请求示例的配置问题!你已经把schema部分定义得很规范了,现在只需要给examples字段填上合适的结构就行——完全可以只体现myKey1和myKey2的键值对,也能按需加上文件示例。
仅包含文本键值对的示例配置
如果只想展示文本参数的示例,直接在examples里定义一个示例对象,value部分写对应的键值对即可,OpenAPI会自动识别这些键为multipart请求的form parts。
下面是完整的requestBody配置代码,替换你原来的examples部分:
"requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "properties": { "file": { "type": "array", "items": { "type": "string", "format": "binary" } }, "myKey1": { "type": "string" }, "myKey2": { "type": "string" } } }, "examples": { "text_only_request": { "summary": "仅包含文本参数的示例请求", "value": { "myKey1": "user_123", "myKey2": "这是一个示例描述" } } } } } }
可选:包含文件的示例配置
如果之后需要展示带文件的请求示例,也很简单——在value里添加file字段,用数组格式填写文件名即可(因为你的schema定义的是数组类型的文件):
"examples": { "text_only_request": { "summary": "仅包含文本参数的示例请求", "value": { "myKey1": "user_123", "myKey2": "这是一个示例描述" } }, "with_files_request": { "summary": "包含文件和文本参数的示例请求", "value": { "myKey1": "user_123", "myKey2": "这是一个示例描述", "file": ["report.pdf", "avatar.jpg"] } } }
补充说明
- 每个示例可以通过
summary字段添加简短说明,方便阅读文档的人快速理解示例用途。 - Swagger UI等OpenAPI工具会自动渲染这些示例:文本参数会显示为输入框,文件参数会显示为文件上传控件(如果包含文件示例的话)。
内容的提问来源于stack exchange,提问作者myol




