Swagger codegen反序列化动态响应
从我的Java后端,我正在使用另一个后端,我不管理它,它的API定义不可用。我正在创建其服务的OpenAPI定义,并使用Swagger Codegen生成客户端 有一个端点返回一个复杂对象:Swagger codegen反序列化动态响应,swagger,openapi,swagger-codegen,Swagger,Openapi,Swagger Codegen,从我的Java后端,我正在使用另一个后端,我不管理它,它的API定义不可用。我正在创建其服务的OpenAPI定义,并使用Swagger Codegen生成客户端 有一个端点返回一个复杂对象: { "total": 151, "version": 4, "dynamicItem1": [ "codeDynamicItem1", 293, 63700, 19, "nameDynamicItem1"
{
"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
始终存在,但在同一级别上有数百个动态项。在上面的示例中,关键点是可以预测的,但实际上是字母和数字的序列,类似于“245df921”。动态项始终是具有相同项数和相同预期位置的数组
为了解析这个对象,我正在使用它,因为我读到它是解析hashmaps的正确方法,但似乎我没有正确地应用它
当前,我的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
属性,该属性的值为null
我缺少什么?
其他属性
需要与属性处于同一级别
此外,由于这些动态数组是多类型的(字符串/整数),您需要oneOf
来定义可能的项目类型
组件:
模式:
对象:
类型:对象
特性:
总数:
类型:编号
示例:151
版本:
类型:编号
示例:4
附加属性:#附加属性
需要与属性
处于同一级别
此外,由于这些动态数组是多类型的(字符串/整数),您需要oneOf
来定义可能的项目类型
组件:
模式:
对象:
类型:对象
特性:
总数:
类型:编号
示例:151
版本:
类型:编号
示例:4
additionalProperties:#这是正确的答案,但由于此问题而不起作用:这是正确的答案,但由于此问题而不起作用: