Используйте существующие модели в swagger, которые находятся в другом проекте для swagger code-gen.

Это контекст: я использую swagger для создания структуры своего API с помощью генератора кода swagger. Но моя первая проблема заключается в том, что на самом деле этот API будет иметь зависимость от Common-Entities.

My-Java-Swagger-Project
   -Controller
   -Entities(model)
   -Everything else
My-commons-project
   -Common Entities

Итак, если генератор Swagger создаст «My-java-swagger-project», и я собираюсь использовать в нем объекты My-commons-project, как я могу указать swagger для создания и использования существующих классов моего проекта commons или сделать не создавать объекты, которые у меня уже есть в проекте общего пользования

definitions:
  Response:
    type: "object"
    properties:
      status:
        type: "string"
        description: "Returns if it was successful or not. "
      errors:
        type: "array"
        items: 
          $ref: "#/definitions/ErrorTO"
  Request:
    type: "object"
    required:
      - subject
      - messageText
    properties:
      subject:
        type: "string"
      messageText:
        type: "string"
  ErrorTO: #This one must not be defined in swagger because it's on my #commons project
    type: object
    properties:
      code:
        type: "string"
      description:
        type: "string"

Когда я запускаю Swagger codegen выводит объект ErrorTO, но у меня уже есть в другом проекте, так как я могу определить swagger, чтобы не создавать этот объект и использовать один из моих общих (или только не создавать Это)


person Anthony TeslaX25    schedule 21.06.2019    source источник


Ответы (1)


Вы можете определить importMappings и typeMappings для генератора кода, чтобы указать ему использовать импортированные классы. Не уверен, какой генератор вы используете, но я подаю в суд на генератор заглушек сервера Java/spring-boot. я подаю в суд на плагин maven, что-то вроде

 <plugin>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>${swagger.codegen.version}</version>
    <executions>
      <execution>
        <id>foo</id>
        <goals>
          <goal>generate</goal>
        </goals>
        <configuration>
          <importMappings>
            <importMapping>Foo=com.example.common.Foo</importMapping>
          </importMappings>
          <typeMappings>
            <typeMapping>Foo=com.example.common.Foo</typeMapping>
          <typeMappings>
        </configuration>
      </execution>
 </plugin>
person Adam    schedule 01.08.2019