在Spring项目中使用OpenAPI Generator时,如何自定义ResponseEntity的响应体类型?
替换OpenAPI生成的Spring响应体为StreamingResponseBody的配置方法
要把OpenAPI Generator生成的文件下载接口响应体从org.springframework.core.io.Resource替换为StreamingResponseBody,你可以利用OpenAPI规范的Spring专属扩展字段来实现,具体步骤如下:
1. 在OpenAPI文档中添加Spring扩展配置
在定义文件下载接口的响应部分,除了保留type: string和format: binary的基础定义外,添加x-spring-response-body扩展字段,指定你想要的响应体类型全类名:
paths: /download: get: summary: 下载CSV文件 responses: '200': description: 成功返回CSV文件 content: text/csv: schema: type: string format: binary x-spring-response-body: org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody
2. 验证生成的代码
当你重新运行OpenAPI Generator生成Spring代码后,对应的接口方法签名会自动变为:
CompletableFuture<ResponseEntity<org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody>> downloadFile();
补充说明
- 这个扩展是OpenAPI Generator针对Spring框架提供的专属配置,确保你使用的Generator版本是v5.0.0及以上(更早版本可能不支持该扩展)。
- 如果需要自定义其他响应体类型,只需要修改
x-spring-response-body的值为对应类的全限定名即可。 - 保持
type: string和format: binary的定义是为了符合OpenAPI对文件响应的标准规范,同时结合扩展实现Spring特定的类型替换。
内容的提问来源于stack exchange,提问作者s9527
相关产品推荐
相关产品推荐

