如何阻止openapi-generator生成未使用的Java响应类?
解决OpenAPI Generator生成未使用响应类的问题
你可以通过以下两种方式解决这个问题:
1. 使用配置项调整返回类型
在生成Java客户端时,添加useResponseEntity=true的额外属性,让接口方法返回ResponseEntity<T>,而非为每个响应状态码生成单独的类。这样就不会产生CreateRequestGet400Response这类未被引用的文件。
命令行示例:
openapi-generator-cli generate -i your-api.yaml -g java -o ./output --additional-properties useResponseEntity=true
如果使用配置文件(如config.json),可以加入:
{ "useResponseEntity": true }
然后通过--config config.json参数引用该配置文件。
2. 在OpenAPI定义中复用响应Schema
将重复的响应结构抽成可复用的组件,避免每个状态码生成独立的类。修改你的YAML文件如下:
openapi: 3.0.1 info: title: example-api description: 'Example API' version: 1.0.0 servers: - url: /example/api/v1 components: schemas: ApiStatusResponse: type: object properties: status: type: string description: Status of request paths: /createRequest: get: summary: Creates a request responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ApiStatusResponse' example: status: OK '400': description: Error 400 content: '*/*': schema: $ref: '#/components/schemas/ApiStatusResponse' example: status: Error 400 '401': description: Error 401 content: '*/*': schema: $ref: '#/components/schemas/ApiStatusResponse' example: status: Error 401 '402': description: Error 402 content: '*/*': schema: $ref: '#/components/schemas/ApiStatusResponse' example: status: Error 402 '490': description: Error 490 content: '*/*': schema: $ref: '#/components/schemas/ApiStatusResponse' example: status: Error 490 '499': description: Error 499 content: '*/*': schema: $ref: '#/components/schemas/ApiStatusResponse' example: status: Error 499
这样生成器只会生成一个ApiStatusResponse类,替代原本多个重复的响应类。
内容的提问来源于stack exchange,提问作者CommanderData
相关产品推荐
相关产品推荐

