Как сгенерировать API с помощью swagger-codegen с другим именем контроллера для Java?
Swagger -codegen генерирует контроллеры APIC на основе имени пути.
Допустим, у вас есть эти пути в swagger.yaml:
/ pet / findByStatus: / user / {userId} / store / inventory
Затем codegen сгенерирует PetAPIController, UserAPIController, StoreApiController.
Но мой API примерно такой:
/ private / pet / findByStatus: / private / user / {userId} / public / store / inventory
поэтому я получаю два основных контроллера: PrivateAPI и PublicAPI
Есть ли способ избежать этого? С помощью тегов или просто со вторым словом пути.
Спасибо
1 ответ
Swagger Codegen's spring
генератор имеет useTags
параметр (true/false), который сообщает кодогенератору использовать теги для именования классов интерфейса и контроллера. При использовании плагина Swagger Codegen Maven вы можете указать эту опцию в<configOptions>
раздел:
<configuration>
<inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
<language>spring</language>
<configOptions>
<useTags>true</useTags>
</configOptions>
</configuration>
когда useTags
знак равноtrue
, операции с определенным тегом, например admin
, будет помещен в AdminApi.java и AdminApiController.java.
Обязательно пометьте все операции в определении API соответствующим образом:
paths:
/foo:
get:
tags: # <-----
- admin
...