Генератор Openapi не генерирует аннотации @XmlAttribute/@XmlElementJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Генератор Openapi не генерирует аннотации @XmlAttribute/@XmlElement

Сообщение Anonymous »

Сейчас я работаю с openapi и пытаюсь создать конечную точку, которая будет использовать XML-файл. Однако при создании моделей с помощью openapi кажется, что все XML-аннотации, к которым я привык, отсутствуют. Я использую openapi.yaml.

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

openapi: 3.0.1
info:
version: "1.1"
title: xml test
description: some xml test

servers:
- url: 'http://localhost/:8080'

paths:
'/test':
put:
operationId: testMethodNaming
requestBody:
content:
'application/xml':
schema:
$ref: '#/components/schemas/MyRequest'
responses:
'200':
description: 'OK'

components:
schemas:
MyRequest:
type: object
properties:
name:
type: string
xml:
attribute: true
Схема MyRequest — это то, о чем сейчас идет речь. Обратите внимание, что я объявляю свойство name как атрибут XML. Сгенерированный класс выглядит следующим образом:

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

/**
* MyRequest
*/
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2019-03-12T15:32:37.070386+01:00[Europe/Berlin]")

public class MyRequest   {
@JsonProperty("name")
private String name;

public MyRequest name(String name) {
this.name = name;
return this;
}

/**
* Get name
* @return name
*/
@ApiModelProperty(value = "")

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
MyRequest myRequest = (MyRequest) o;
return Objects.equals(this.name, myRequest.name);
}

@Override
public int hashCode() {
return Objects.hash(name);
}

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class MyRequest {\n");

sb.append("    name: ").append(toIndentedString(name)).append("\n");
sb.append("}");
return sb.toString();
}

/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(java.lang.Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n    ");
}
}
Я сгенерировал это с помощью генератора Spring-Boot. Я ожидал, что аннотация @XmlAttribute будет присутствовать над полем имени. Я также ожидал, что поверх класса будет @XmlRootElement.

По какой-то причине я не могу запустить сгенерированный код прямо сейчас, но, похоже, если бы я отправил в конечную точку, он не сможет проанализировать его с помощью этой модели.

Может быть, я пропустил какой-то параметр конфигурации или что-то еще, чтобы он генерировал правильные аннотации?
Посмотрев исходный код openapi, нужное есть аннотации


[*]Шаблон заголовка класса
[*]Шаблон модели (строка 24)

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

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

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

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

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

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

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