Сериализация объектов OpenAPI, созданных swagger-парсером, в файл спецификацииJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сериализация объектов OpenAPI, созданных swagger-парсером, в файл спецификации

Сообщение Anonymous »

Я пытаюсь создать процесс, который берет файл спецификации OpenAPI, созданный внешней системой, выполняет некоторые изменения, чтобы он работал лучше как Spring API, а затем записывает полученный файл, который затем используется openapi-генератором. для создания классов API и модели.
Я использую swagger-parser для чтения исходного файла и могу вносить изменения в полученные объекты OpenAPI. Я попробовал несколько способов сериализации этих объектов в файлы JSON, но openapi-generator столкнулся с проблемами при анализе этих файлов.
Обычно код выглядит следующим образом:

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

SwaggerParseResult result = new OpenAPIParser().readLocation( INPUT_FILE, null, null );
OpenAPI openAPI = result.getOpenAPI();

// at this point, result.getMessages() is an empty list

/* ... tweak the API description ... */

String rawData = Json.pretty(openAPI);
try {
FileUtils.writeStringToFile( OUTPUT_FILE, rawData, Charset.defaultCharset() );
} catch (IOException e) {
throw new RuntimeException("Error writing file", e);
}
Это Json.pretty — это собственный класс Json Swagger для сериализации объекта OpenAPI.
Ошибки проверки, которые я вижу, включают:
  • Схемы имеют как свойство типа (строка), так и типы (массив строк).
    Поля расширений (например, x-whatever) объектов отображаются как поля внутри объекта расширений.
  • Некоторые дополнительные внутренние поля объектов OpenAPI попадают в JSON
В качестве примера это выглядит так:

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

  "components" : {
"schemas" : {
"something" : {
"minLength" : 1,
"maxLength" : 10,
"type" : "string",
"types" : [ "string" ],
"extensions" : {
"x-whatever" : true
}
}
...
Я пытался создать свой собственный ObjectMapper с некоторыми специальными миксинами, чтобы скрыть/изменить эти проблемы, но это становится очень сложным.
Итак, как это происходит? Ожидается ли сериализация объекта OpenAPI в файл таким образом, чтобы его можно было снова проанализировать с помощью собственного OpenAPIParser Swagger?

Подробнее здесь: https://stackoverflow.com/questions/784 ... ation-file
Ответить

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

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

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

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

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