如何自定义OpenAPI工具自动生成的API类名称?
自定义OpenAPI Generator生成的API类名称
可以通过以下两种方式实现自定义生成的API类名称,解决同路径前缀接口被归入同一类的问题:
方法一:在OpenAPI规范中添加x-codegen-classname扩展
直接在每个接口的operation定义中指定所属的API类名称,优先级最高,能精准控制每个操作的归属类:
/items/{itemName}: get: operationId: getItems x-codegen-classname: ItemsApi # 指定生成的API类名称 parameters: - name: itemName in: path required: true description: The name of an item schema: type: string /items/{itemName}/clean/: get: operationId: getItemsClean x-codegen-classname: ItemCleanApi # 指定另一个API类名称 parameters: - name: itemName in: path required: true description: The name of an item schema: type: string
生成后,getItems方法会被放入ItemsApi类,getItemsClean会被放入ItemCleanApi类。
方法二:配置Maven插件,结合自定义标签分组
如果希望按标签批量分组,可先给每个operation添加自定义标签,再在插件配置中开启按标签分组的规则:
1. 在OpenAPI规范中添加自定义标签
/items/{itemName}: get: operationId: getItems tags: - Items parameters: - name: itemName in: path required: true description: The name of an item schema: type: string /items/{itemName}/clean/: get: operationId: getItemsClean tags: - ItemClean parameters: - name: itemName in: path required: true description: The name of an item schema: type: string
2. 修改Maven插件配置
在插件的<configuration>中添加groupBy和useTags配置,强制按标签分组生成API类:
<plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>7.4.0</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <!-- 其他基础配置(如generatorName、inputSpec等) --> <configOptions> <groupBy>tag</groupBy> <useTags>true</useTags> <!-- 可选:设置类名前缀/后缀 --> <apiNameSuffix>Api</apiNameSuffix> </configOptions> </configuration> </execution> </executions> </plugin>
这种方式下,带有Items标签的操作会生成ItemsApi类,带有ItemClean标签的操作会生成ItemCleanApi类。
注意:如果之前添加标签无效,大概率是未在插件配置中开启
groupBy: tag和useTags: true,这两个参数是让工具按标签分组的关键。
内容的提问来源于stack exchange,提问作者chujudzvin
相关产品推荐
相关产品推荐

