Swagger 我需要在springdoc openapi中为@Parameter添加多个示例,但这不会生成给定的示例
我正在尝试向我的项目中添加招摇文档。 我需要为Sample.class的@RequestBody中的@Parameter添加多个示例,下面的代码是如何在文档中编写它的Swagger 我需要在springdoc openapi中为@Parameter添加多个示例,但这不会生成给定的示例,swagger,openapi,swagger-3.0,springdoc-openapi-ui,Swagger,Openapi,Swagger 3.0,Springdoc Openapi Ui,我正在尝试向我的项目中添加招摇文档。 我需要为Sample.class的@RequestBody中的@Parameter添加多个示例,下面的代码是如何在文档中编写它的 @PostMapping("/") public Sample createSample(@Parameter(description="Sample description", examples = { @ExampleObject(name="foo", description = "na",s
@PostMapping("/")
public Sample createSample(@Parameter(description="Sample description", examples = {
@ExampleObject(name="foo", description = "na",summary = "na",value = "{\n" +
" \"id\": 10,\n" +
" \"name\": \"ashith\",\n" +
" \"description\": \"none\"\n" +
"}"),
@ExampleObject(name="bar",description = "na",summary = "na",value = "{\n" +
" \"id\": 20,\n" +
" \"name\": \"Akshatha\",\n" +
" \"description\": \"ok\"\n" +
"}")
}
)
@RequestBody Sample sample) {
正在生成的yaml输出如下所示:
openapi: 3.0.1
info:
title: OpenAPI definition
version: v0
servers:
- url: 'http://localhost:8080/'
description: Generated server url
paths:
/api/another/:
post:
tags:
- another-controller
operationId: createSample
requestBody:
description: Sample description
content:
application/json:
schema:
$ref: '#/components/schemas/Sample'
required: true
responses:
'200':
description: default response
content:
'*/*':
schema:
$ref: '#/components/schemas/Sample'
'400':
description: default response
content:
'*/*':
schema:
type: string
'404':
description: default response
content:
'*/*':
schema:
type: string
这似乎缺少了根据代码
@Parameter
使用的参数
应该添加的示例,该参数指定它是openapi提供的标题、查询还是路径(参见下文)
相反,您应该使用openapi库中的RequestBody
,如下所示
@io.swagger.v3.oas.annotations.parameters.RequestBody(content = {
@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
@ExampleObject(value = "{\"key1\": \"example1\", \"key2\":\"example1\", \"key3\":\"example1\"}"),
@ExampleObject(value = "{\"key1\": \"example2\", \"key2\":\"example2\", \"key3\":\"example2\"}")
})
})
您可以在方法或参数级别添加此项
@io.swagger.v3.oas.annotations.parameters.RequestBody(content = {
@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
@ExampleObject(value = "{\"key1\": \"example1\", \"key2\":\"example1\", \"key3\":\"example1\"}"),
@ExampleObject(value = "{\"key1\": \"example2\", \"key2\":\"example2\", \"key3\":\"example2\"}")
})
})