Swagger создает дублированные классы моделей

Создание кода сервера для этого минимального Пример с использованием spring или jaxrs-spec создает 2 класса моделей: Pet.java и InlineResposne200.java. За исключением имени класса, они идентичны.

Контроллер, который отвечает на /pets, возвращает List<InlineResponse200> вместо List<Pet>, а класс Pet фактически нигде не используется, хотя в определении yaml используется $ref: "#/definitions/Pet". Почему это происходит?

---
  swagger: "2.0"
  info: 
    version: "1.0.0"
    title: "Swagger Petstore"
    description: "A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification"
    termsOfService: "http://swagger.io/terms/"
    contact: 
      name: "Swagger API Team"
    license: 
      name: "MIT"
  host: "petstore.swagger.io"
  basePath: "/api"
  schemes: 
    - "http"
  consumes: 
    - "application/json"
  produces: 
    - "application/json"
  paths: 
    /pets: 
      get: 
        description: "Returns all pets from the system that the user has access to"
        produces: 
          - "application/json"
        responses: 
          "200":
            description: "A list of pets."
            schema: 
              type: "array"
              items: 
                $ref: "#/definitions/Pet"
  definitions: 
    Pet: 
      type: "object"
      required: 
        - "id"
        - "name"
      properties: 
        id: 
          type: "integer"
          format: "int64"
        name: 
          type: "string"
        tag: 
          type: "string"

person cahen    schedule 02.06.2017    source источник


Ответы (1)


Я попытался воспроизвести это с swagger-codegen v2.2.2, используя как spring, так и jaxrs-spec, но не смог получить InlineResponse200.java.

Однако, покопавшись еще немного, я обнаружил, что об этой проблеме недавно сообщалось < /a> как ошибку. Это еще не исправлено, но InlineResponse200.java там быть не должно.

Этот файл создается неправильно при использовании Swagger Editor v3. Я предполагаю, что именно так вы создали свой файл?

Хотя Swagger Editor v2 не имеет этой проблемы, я предлагаю вам установить и используйте последнюю стабильную версию swagger-codegen для создания кода из файла Swagger.yaml.

Надеюсь это поможет.

person priboyd    schedule 02.06.2017
comment
генерация с моей машины с помощью v2.2.2 работала нормально, спасибо! Я использовал тот, что в http://editor.swagger.io - person cahen; 05.06.2017