Springboot整合Swagger

SpringBoot简单整合Swagger

1、引入swagger依赖

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>

使用依赖解述:

  1. springbox 是一个通过扫描代码提取代码中的信息,生成API文档的工具;
  2. springbox-swagger2 依赖OSA规范文档(描述API的json文件),该组件能够帮助我们自动生成JSON文件
  3. 通过springbox-swagger-ui 可以将json文件解析出来;

2、配置注意

  Spring Boot 2.6及 更高版本使用的是PathPatternMatcher
而Springfox使用的路径匹配是基于AntPathMatcher的,所以更改配置如下:

spring:
  mvc:
	pathmatch:
		matching-strategy: ANT_PATH_MATCHER

3、配置类

  SwaggerConfig类上添加 Configuration 表明这是一个配置类,添加 EnableSwagger2 开启Swagger配置

@Bean
public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                // 指定构建api文档的详细信息的方法:apiInfo()
                .apiInfo(apiInfo())
                .select()
                // 指定要生成api接口的包路径,这里把controller作为包路径,生成controller中的所有接口
                .apis(RequestHandlerSelectors.basePackage("com.yang.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    

下面这个类是Swagger中接口设定相关信息

private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 设置页面标题
                .title("Spring Boot集成 Swagger2接口总览")
                // 设置页面描述
                .description("Swagger接口页面")
                // 设置联系方式
                .contact("空山万籁," + "优快云:http://blog.youkuaiyun.com/KS_wl")
                // 设置版本
                .version("1.0")
                // 构建
                .build();
    }

这是所需要的实体类
相关注解:
   ApiModel 注解用于实体类,表示对类进行说明,用于参数用实体类接收。
   ApiModelProperty注解用于类中属性,表示对 model 属性的说明或者数据操作更改。
简化注解
  Data注解是通过引入Lombok依赖,实现对代码的简化,减少实体属性的set与get方法,也可以直接使用Setter、Getter注解来代替。

@Data
@ApiModel(value = "用户实体类")
public class User {
    @ApiModelProperty(value = "用户唯一标识")
    private int id;
    @ApiModelProperty(value = "用户姓名")
    private String username;
    @ApiModelProperty(value = "用户密码")
    private String password;
    
}

Swagger相关注解

	@Api 注解用于类上,表示标识这个类是 swagger 的资源。
    @ApiOperation 注解用于方法,表示一个 http 请求的操作。
    @ApiParam 注解用于参数上,用来标明参数信息。

测试Controller

  RestController注解主要用于前后端分离项目,包含了Controller注解和ResponseBody注解

@RestController
@RequestMapping("/swagger")
public class TestController {

    @GetMapping("/get/{id}")
    public JsonResult<User> getUserinof(@PathVariable @ApiParam(value = "用户唯一标识") int id) {
        User user = new User(1, "张三", "123456");
        return new JsonResult(user);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值