当前位置: 首页 > 知识库问答 >
问题:

springdoc openapi如何将字符串数组显示为响应

马边浩
2023-03-14

关于如何使用springdocs-openapi库(1.5.7)获得以下输出,网络上没有很好的示例。我希望得到以下输出:

[
  "A", "B", "C"
]

这是基于提供的示例的代码。

@Operation(summary = "")
    @ApiResponses(value = {
            @ApiResponse(responseCode = "200", description = "OK",
                    content = {@Content(mediaType = "application/json",
                            array = @ArraySchema(schema = @Schema(implementation = String.class)),
                            examples = {@ExampleObject("A"), @ExampleObject("B"), @ExampleObject("C")}
                    )})

这将产生以下输出

[
  "string"
]

如何通过springdocs openapi库实现上面列出的输出[“A”、“B”、“C”]?

共有1个答案

戴树
2023-03-14

您错误地使用了@ExampleObjectvalue属性(如果不指定任何内容,也是默认属性)接受示例负载的JSON序列化对象。

因此,要获取["A","B"],您不需要多个@示例对象,而是需要一个示例的注释。

因此,如下所示更新代码应该会有所帮助

@Operation(summary = "Some method")
@ApiResponses(value = {
    @ApiResponse(responseCode = "200", description = "OK", content = {
        @Content(
            mediaType = MediaType.APPLICATION_JSON_VALUE,
            array = @ArraySchema(schema = @Schema(implementation = String.class)),
            examples = {
                @ExampleObject("[\"A\", \"B\"]")
            }
        )
    })
})

下面显示的是上述代码的输出

要指定多个示例,应该有多个示例对象,如下所示

@Operation(summary = "Some method")
@ApiResponses(value = {
    @ApiResponse(responseCode = "200", description = "OK", content = {
        @Content(
            mediaType = MediaType.APPLICATION_JSON_VALUE,
            array = @ArraySchema(schema = @Schema(implementation = String.class)),
            examples = {
                @ExampleObject(name = "Example 1", summary = "Summary 1", description = "Some desc", value = "[\"A\", \"B\"]"),
                @ExampleObject(name = "Example 2", summary = "Summary 2", description = "Some desc", value = "[\"C\", \"D\"]")
            }
        )
    })
})

注意:@ExampleObjectname属性用于在规范文件中内部标识示例。

"responses": {
  "200": {
    "description": "OK",
    "content": {
      "application/json": {
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "examples": {
          "Example 1": {
            "summary": "Summary 1",
            "description": "Some desc",
            "value": [
              "A",
              "B"
            ]
          },
          "Example 2": {
            "summary": "Summary 2",
            "description": "Some desc",
            "value": [
              "C",
              "D"
            ]
          }
        }
      }
    }
  }
}
 类似资料:
  • 问题内容: Magento构造其SQL查询,例如 有没有办法以字符串格式显示结果查询,而不是打印出巨大的对象,例如 问题答案:

  • 我正在使用WebSocket,在方法中,我收到了字符串形式的响应。我想把这个响应存储在模型类中。如何将这个字符串响应转换为数组列表?

  • 问题内容: 我试图在网上四处寻找将字符串拆分为字符数组的答案,但似乎找不到一个简单的方法 似乎不像Ruby那样工作。有没有一种简单的方法可以不循环? 问题答案:

  • 我得到一个错误读数:

  • 问题内容: 我有一个一维String数组,我想将其转换为一维字节数组。我该怎么做呢?这需要ByteBuffer吗?我怎样才能做到这一点?(字符串可以是任意长度,只想知道如何执行这样的操作。将其转换为字节数组后,如何将其转换回String数组? -担 问题答案: 数组到数组 ,应该 手动 将其转换为两边,但是如果只有一个String,则可以和; 像这样 对于string []中的一个字节[],您必须

  • 我有一个字符串变量,它包括我试图排序的网格的列名。。 我希望将其拆分为一个包含4个值的字符串数组。我尝试了以下代码行: 然而,当我运行这个程序时,逗号仍然停留在该值上,因此我有例如和。如果没有逗号,如何拆分这些值?