Сгенерированный код Swagger код пропускает метод для определенного типа медиа - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь создать REST API-интерфейс с версиями mediatypes, используя Swagger 3. Я хочу вернуть различные объекты в зависимости от заголовка accept в запросе.

Итак, я создал файл yaml в http://editor.swagger.io и сгенерировал код сервера (jaxrs-cxf). Но сгенерированный код всегда содержит метод только для первого типа объекта.

Я разбил его на довольно простой файл yaml. При генерации кода сервера генерируется только один метод:

openapi: 3.0.6
info:
  title: pet test api
  description: testapi for mime based versioning
  version: 1.0.0
servers:
  - url: https://animal.com/pets
paths:
  /pet:
    get:
      tags: 
        - pets
      summary: pets
      description: get cat or dog
      responses: 
        '200':
          description: get specific pet
          content:
            application/cat+json:
              schema:
                $ref: '#/components/schemas/cat'
            application/dog+json:
              schema:
                $ref: '#/components/schemas/dog'
components:
  schemas:
    cat:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    dog:
      type: object
      properties:
        name:
          type: string
        age:
          type: integer

Я ожидаю получить как минимум два метода, сгенерированных в main / java / io.swagger.api.impl.PetsApiServiceImpl.java

public class PetsApiServiceImpl implements PetsApi {
    /**
     * pets
     *
     * get cat or dog
     *
     */
public Cat petGet() {
        // TODO: Implement...

        return null;
    }

public Dog petGet() {
        // TODO: Implement...

        return null;
    }
}

Но на самом деле генерируется только один метод:

public class PetsApiServiceImpl implements PetsApi {
    /**
     * pets
     *
     * get cat or dog
     *
     */
    public Cat petGet() {
        // TODO: Implement...

        return null;
    }

}


Если честно, я впервые использую чванство.

Так что мои ожидания неверны, а то, что я хочу архивировать, просто невозможно? Или это ошибка внутри кодекса чванства?

Спасибо, Jan

...