如何在 Spring Boot 中在 Swagger UI 中拥有一组示例

问题描述 投票:0回答:1

目前,我使用 Swagger v2 来显示控制器类的端点(我使用 Docket 在 Spring Boot 中配置 swagger)。但是由于请求体中字段的数量,返回会受到影响 --> 我需要在 Swagger UI 中有示例。

有没有办法在 Swagger UI 中提供示例列表,例如:

//This is Swagger UI//
//Endpoint 1//
Body for get a user with name:
{
  "username": "cron"
}

Body for get user in domain:
{
  "username": "cron",
  "domain": "IT"
}

非常感谢!

spring spring-boot swagger swagger-ui
1个回答
0
投票

如何在 Spring Boot 中在 Swagger UI 中拥有一组示例

您可以使用注释为整个操作设置示例:

@Operation(
    summary = "Create a new user",
    examples = @Example(
        value = @ExampleObject("{ \"username\": \"cron\", \"domain\": \"IT\" }"),
        summary = "Example 1"
    ),
    examples = @Example(
        value = @ExampleObject("{ \"username\": \"mary\", \"domain\": \"Sales\" }"),
        summary = "Example 2"
    )
)

或者您可以为您的请求正文设置完整的示例:


public User createUser(@RequestBody @ExampleObject(value = "{ \"username\": \"cron\", \"domain\": \"IT\" }") User user) {

但是

@ExampleObject
仅支持原始类型或字符串的请求正文参数。

否则,您可以在请求正文类中的每个字段上使用

@ExampleProperty
注释:

public class User {

  @ExampleProperty(value = "cron")
  private String username;

  @ExampleProperty(value = "IT")
  private String domain;

  
...
}
© www.soinside.com 2019 - 2024. All rights reserved.