Сериализация параметра заголовка как json вместо использования toString() с openapi-generator-maven-pluginJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сериализация параметра заголовка как json вместо использования toString() с openapi-generator-maven-plugin

Сообщение Anonymous »

Я пытаюсь использовать Java-генератор openapi-generator-maven-plugin для сериализации сложного объекта в формате JSON вместо сериализации объекта с использованием toString.
Я не могу понять, как заставить Java генерировать клиент, который будет сериализовать объект заголовка как json.
Объект, который я хочу передать в свой заголовок:

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

@Data
public class RequestContextDTO {
@Valid
private TrackingDTO tracking;
}

@Data
public class TrackingDTO {
private String trackingNumber;
}
YAML:

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

openapi: 3.0.1
info:
title: Test Header Serialization
version: "1"
servers:
- url: http://localhost:8080
description: Generated server url
paths:
/test/:
get:
tags:
- MyController
summary: Test Header As Complex Object
operationId: postRequestWithHeader
parameters:
- name: x-request-context
in: header
description: Request context
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/RequestContextDTO"
responses:
"200":
description: Success
components:
schemas:
RequestContextDTO:
required:
- businessContext
- userInfo
type: object
properties:
tracking:
$ref: "#/components/schemas/TrackingDTO"
TrackingDTO:
required:
- trackingNumber
type: object
properties:
trackingNumber:
type: string
Я хочу создать клиент «Java» из моего файла yaml для вызова моего нового API.
Я использую следующий плагин для сделай так:

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

org.openapitools
openapi-generator-maven-plugin
7.8.0




generate


/definitions/newApi.yaml
java

false

jersey3
true
java8
${client.package}.api
${client.package}.api
${client.package}.model
false
jackson





openapi-generator-maven-plugin сгенерирует следующий код:

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

public class MyControllerApi {
private ApiClient apiClient;

public ApiResponse postRequestWithHeaderWithHttpInfo(RequestContextDTO xRequestContext) throws ApiException {
if (xRequestContext == null) {
throw new ApiException(400, "Missing the required parameter 'xRequestContext' when calling postRequestWithHeader");
} else {
Map  localVarHeaderParams = new LinkedHashMap();
localVarHeaderParams.put("x-request-context", this.apiClient.parameterToString(xRequestContext));
String localVarAccept = this.apiClient.selectHeaderAccept(new String[0]);
String localVarContentType = this.apiClient.selectHeaderContentType(new String[0]);
return this.apiClient.invokeAPI("MyControllerApi.postRequestWithHeader", "/test/", "GET", new ArrayList(), (Object)null, localVarHeaderParams, new LinkedHashMap(), new LinkedHashMap(), localVarAccept, localVarContentType, (String[])null, (GenericType)null, false);
}
}
}

ApiClient. сгенерированный метод:

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

  public String parameterToString(Object param) {
if (param == null) {
return "";
} else if (param instanceof Date) {
return formatDate((Date) param);
} else if (param instanceof OffsetDateTime) {
return formatOffsetDateTime((OffsetDateTime) param);
} else if (param instanceof Collection) {
StringBuilder b = new StringBuilder();
for(Object o : (Collection)param) {
if(b.length() > 0) {
b.append(',');
}
b.append(String.valueOf(o));
}
return b.toString();
} else {
return String.valueOf(param);
}
}
Приведенный выше код вызовет метод xRequestContextDTO.toString() вместо сериализации объекта в формате JSON, как говорит мой yaml.
Есть ли способ сообщить плагину maven о создании Java-клиента, который будет сериализовать сложный объект заголовка как json? Возможно, я что-то упустил в конфигурации плагина yaml или maven.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сериализуйте параметр заголовка как json вместо использования toString() с openapi-generator-maven-plugin
    Anonymous » » в форуме JAVA
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • OpenAPI-Generator-Maven-Plugin Обновление Spept OpenApi Spect до 3.1.0
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Generator Generator Maven Plugin не использует импортные отображения
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Как удалить ApiUtil.java из задачи создания openApi с помощью openapi-generator-gradle-plugin: 4.3.0
    Anonymous » » в форуме JAVA
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous
  • Как генерировать клиент-код с помощью SpringDoc-Openapi-Maven-Plugin и Swagger-Codegen-Maven-Plugin?
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

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