Из моего Java бэкэнда я использую другой бэкэнд, которым я не управляю, и его определение API недоступно. Я создаю определение OpenAPI его сервисов и использую Swagger Codegen для генерации клиента.
Существует конечная точка, которая возвращает сложный объект:
{
"total": 151,
"version": 4,
"dynamicItem1": [
"codeDynamicItem1",
293,
63700,
19,
"nameDynamicItem1",
"",
"",
"",
0,
-64
],
"dynamicItem2": [
"codeDynamicItem2",
237,
40000,
478,
"nameDynamicItem2",
"string1",
"string2",
"string3",
0,
0
]
}
В этом объекте total
и version
всегда есть, но на одном уровне есть сотни этих динамических c предметов. Ключ предсказуем в приведенном выше примере, но на самом деле это последовательность букв и цифр, что-то вроде «245df921». Динамические c элементы - это всегда массивы с одинаковым количеством элементов и с одинаковыми ожидаемыми позициями.
Для анализа этого объекта я использую AdditionalProperties , потому что я прочитал, что это правильно способ разбора хеш-карт, но кажется, что я не применяю его правильно.
В настоящее время мое представление OpenAPI выглядит следующим образом:
openapi: 3.0.2
info:
version: 1.0.0
title: title
description: description
paths:
/complexObject:
get:
responses:
'200':
description: "OK"
content:
application/json:
schema:
$ref: '#/components/schemas/Object'
components:
schemas:
Object:
type: object
properties:
total:
type: number
example: 151
version:
type: number
example: 4
additionalProperties:
type: array
items:
type: string
nullable: true
При использовании этой реализации total
и version
возвращаются правильно, но в объекте ответа есть атрибут additionalProperties
с нулевым значением.
Что мне не хватает?