Как сгенерировать 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
      ...
Другие вопросы по тегам