如何在OpenAPI YAML中编写返回MP3文件的响应?
嘿,我来帮你搞定返回MP3文件的API YAML配置!其实在OpenAPI规范里配置多媒体响应没那么复杂,我直接给你上实用示例和关键细节说明:
核心配置步骤
在OpenAPI的YAML定义里,你只需要在接口的responses部分指定对应的MIME类型,同时说明响应数据是二进制格式即可。
完整示例代码
这里给你一个返回MP3音频的GET接口配置示例:
openapi: 3.0.3 info: title: 音频文件API version: 1.0.0 paths: /audio/{trackId}: get: summary: 获取指定ID的MP3音频文件 parameters: - name: trackId in: path required: true schema: type: string responses: '200': description: 成功返回MP3音频文件 content: audio/mp3: # 这里指定你需要的音频MIME类型 schema: type: string format: binary # 标记为二进制数据 # 可选:如果需要让浏览器直接下载文件而不是播放,可以加这个响应头 headers: Content-Disposition: description: 指定下载文件名 schema: type: string example: attachment; filename="my-track.mp3"
关键细节说明
- MIME类型兼容性:严格来说,MP3的标准MIME类型是
audio/mpeg,不过audio/mp3也被大多数客户端和服务器支持。如果要追求最大兼容性,建议优先用audio/mpeg替换示例里的audio/mp3。 - 二进制数据标记:
format: binary告诉API文档工具和客户端,这个响应是二进制流,不是JSON或文本格式。 - 下载文件名配置:通过
Content-Disposition响应头,可以指定浏览器下载文件时的默认文件名,用户体验更好。
额外提示
别忘了确保你的后端服务实际返回的是正确的MP3二进制数据,并且响应头里的Content-Type和你在YAML里配置的一致(比如audio/mp3或audio/mpeg),这样客户端才能正确识别和处理音频文件。
内容的提问来源于stack exchange,提问作者Shibin
相关产品推荐
相关产品推荐

