Как сгенерировать API с помощью swagger-codegen с другим именем контроллера для Java? - PullRequest
1 голос
/ 26 февраля 2020

swagger-codegen генерирует APIControllers на основе имени пути.

Допустим, у вас есть следующие пути в вашем swagger.yaml:

/ pet / findByStatus: / user / {userId} / store / inventory

Тогда кодген собирается генерировать PetAPIController, UserAPIController, StoreApiController.

Но мой API выглядит примерно так:

/ private / pet / findByStatus: / private / user / {userId} / public / store / инвентарь

, поэтому я получаю два основных контроллера: PrivateAPI и PublicAPI

Есть ли способ избежать этого? Использование тегов или просто второе слово пути.

Спасибо

1 Ответ

1 голос
/ 27 февраля 2020

Генератор spring Swagger Codegen имеет опцию 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, операции с указанным тегом c, скажем, admin будет помещен в AdminApi. java и AdminApiController. java.

Убедитесь, что все операции в вашем определении API помечены соответствующим образом:

paths:
  /foo:
    get:
      tags:    # <-----
        - admin
      ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...