Spring boot 2.x集成swagger

1、官方文档

 

2、历史版本安装

 如果使用的不是最新的spring boot版本,则进入红框链接,打开历史版本列表。图片中也说明了springdoc-openapi v1.8.0 is the latest Open Source release supporting Spring Boot 2.x and 1.x.

 

3、2.x版本文档

https://springdoc.org/v1/

 

4、全局配置以及从SpringFox迁移的内容

https://springdoc.org/v1/#migrating-from-springfox

 

5、通过pom集成swagger

    <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-ui</artifactId>
      <version>1.8.0</version>
    </dependency>

注意spring boot对应的swagger的版本限制

 

6、修改swagger默认配置

 新增SwaggerConfiguration,注入到容器中.

 

7、测试代码

(1)、控制器代码如下:

复制代码
@RequestMapping(value = "/test")
@RestController
@Tag(name="测试控制器",description = "测试控制器描述")
public class TestController
{
    @Operation(summary ="测试get方法",description = "测试get方法描述")
    @GetMapping(value = "/hello")
    public String get(@Parameter(required = true,name="字符串参数") String param,@Parameter(required = true,name="int参数")int intParam)
    {
        return param+intParam;
    }

    @Parameters({
            @Parameter(required = true,name="param",description = "字符串参数"),
            @Parameter(required = true,name="intParam",description = "int参数")
    })
    @Operation(summary ="测试get方法1",description = "测试get方法描述1")
    @GetMapping(value = "/hello1")
    public String get1(String param,int intParam)
    {
        return param+intParam;
    }

    @Operation(summary ="测试get方法2",description = "测试get方法描述2")
    @PostMapping(value = "/hello12")
    public TestRequestDto get2(@Parameter(required = true, name = "字符串参数") String param, @Parameter(required = true, name = "表单参数") @RequestBody TestRequestDto dto) {
        return dto;
    }
}
复制代码

(2)、类型入参代码

复制代码
@Data
@Schema(description= "测试入参Dto类型")
public class TestRequestDto
{
    @Schema(description= "字符串参数")
    private String param;

    @Schema(description="int参数")
    private int intParam;

    @Schema(description="decimal参数")
    private BigDecimal decimalParam;

    @Schema(description="bool参数")
    private boolean boolParam;

    @Schema(description="date参数")
    private Date dateParam;

    @Schema(description="float参数")
    private float floatParam;

    @Schema(description="double参数")
    private double doubleParam;

    @Schema(description="long参数")
    private Long longParam;

    @Schema(description="TestRequestInnerDto类型参数")
    private TestRequestInnerDto innerDto;

    @Schema(description="list参数")
    private List<String> listParam;
}

@Schema(description= "测试入参Dto内部类型")
@Data
class TestRequestInnerDto
{
    @Schema(description="字符串参数")
    private String param;

    @Schema(description="int参数")
    private int intParam;

    @Schema(description="decimal参数")
    private BigDecimal decimalParam;

    @Schema(description="bool参数")
    private boolean boolParam;

    @Schema(description="date参数")
    private Date dateParam;

    @Schema(description="float参数")
    private float floatParam;

    @Schema(description="double参数")
    private double doubleParam;

    @Schema(description="long参数")
    private Long longParam;
}
复制代码

 

posted @   郑小超  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示