gpt4 book ai didi

rest - Swagger 响应类 Map

转载 作者:行者123 更新时间:2023-12-04 23:46:47 26 4
gpt4 key购买 nike

我有一个返回的 REST API,本质上是一个 (String, Object) 的 Map,其中 Object 是

  1. 一个自定义 bean(比方说 Bean 类)或
  2. 元素列表,所有类型都是 Bean

在 JSON 中,这很好地转换为:

{
"key1":{
"val1":"some string",
"val2":"some other string",
"val3":"another string"
},
"key2":[
{
"val1":"some string",
"val2":"some other string",
"val3":"another string"
},
{
"val1":"some string",
"val2":"some other string",
"val3":"another string"
}
]
}

有没有办法通过swagger注解指定这种动态Map作为响应类?

谢谢

最佳答案

我读了'Open API Specification' - 'Add support for Map data types #38' page .据我所知,它建议使用 additionalProperties,但我还没有设法让它与 Swagger UI 2.1.4 一起使用(请参阅我的相关问题:Swagger: map of string, Object)。

我找到了以下解决方法:定义一个对象,其中一个属性是键,一个内部对象作为“键”属性的值。

Swagger UI中显示是正确的,但看不出是 map ,所以需要在评论中说明这是 map 。

在你的例子中,我发现有一个 Bean 和一个 Beans 列表有点奇怪:我发现在第一种情况下有一个 Bean 的数组更合乎逻辑。

不过,您仍然可以这样做,例如:

your_property: {
description: "This is a map that can contain several objects indexed by different keys. The value can be either a Bean or a list of Beans.",
type: object,
properties: {
key_for_single_bean: {
description: "The value associated to 'key_for_single_bean' is a single Bean",
$ref: "#/definitions/Bean"
},
key_for_list_of_beans: {
description: "The value associated to 'key_for_list_of_beans' is an array of Beans",
type: array,
items: {$ref: "#/definitions/Bean"}
}
}
}

关于rest - Swagger 响应类 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21541610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com