Openapi-generator-maven-plugin (Java) не обрабатывает allOf должным образомJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Openapi-generator-maven-plugin (Java) не обрабатывает allOf должным образом

Сообщение Anonymous »

При использовании org.openapitools:openapi-generator-maven-plugin я заметил, что использование allOf, состоящего из нескольких объектов в ответе, не создает класс, объединяющий эти несколько объектов. Вместо этого он использует первый класс, определенный в разделе allOf.
Вот минимальный пример (

Код: Выделить всё

openapi.yaml
):

Код: Выделить всё

openapi: 3.0.0
info:
title: Test
version: v1
paths:
/test:
get:
operationId: get
responses:
'200':
description: Get
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/A'
- $ref: '#/components/schemas/B'
components:
schemas:
A:
type: object
properties:
attA:
type: string
B:
type: object
properties:
attB:
type: integer
При создании классов в Java с помощью:

Код: Выделить всё

mvn org.openapitools:openapi-generator-maven-plugin:5.2.0:generate \
-Dopenapi.generator.maven.plugin.inputSpec=openapi.yaml \
-Dopenapi.generator.maven.plugin.generatorName=java
Показывает предупреждение:

Код: Выделить всё

[WARNING] allOf with multiple schemas defined. Using only the first one: A
Как и ожидалось, он генерирует классы A и B. Но при вызове get() значение, возвращаемое вызовом, имеет тип A:
p>

Код: Выделить всё

DefaultApi api = new DefaultApi();
A a = api.get();
Вместо этого я ожидал бы составной объект, содержащий свойства A и B ( и attB), вот так (результат https://editor.swagger.io/):
Изображение

Я создал проблему на GitHub, но, надеюсь, у кого-то здесь, возможно, была такая же проблема, и он справился чтобы это исправить.
Кроме того, я не могу изменить файл openapi.yaml, поскольку это спецификация OpenAPI, предоставляемая API, который мне нужно вызов, поэтому его изменение не имеет смысла и затруднит управление, если их спецификация OpenAPI со временем изменится.

Подробнее здесь: https://stackoverflow.com/questions/687 ... f-properly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»