Я пытаюсь создать 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