Swagger2

Swagger2



一、Swagger2简介

  • 号称世界上最流行的Apo框架
  • Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
  • 直接运行,可以在线测试API接口
  • 支持多钟语言
官网:https://swagger.io/
需要springbox
  1. swagger2
  2. ui

SpringBoot集成Swagger


1. 导入相关依赖(3.0.0版本)

- springfox-swagger2
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0</version>
</dependency>
- springfox-swagger-ui
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>3.0.0</version>
</dependency>
- springfox-boot-starter
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

2.配置Swagger

在这里插入图片描述
测试是否能访问Swagger页面:http://localhost:8080/swagger-ui/index.html#/

访问成功

在这里插入图片描述

2.1)Swagger的Bean实例Docket

在这里插入图片描述
配置成功显示页面将改变为:
在这里插入图片描述

2.2)Swagger配置扫描接口

   //配置Swagger的Docket的bean实例
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .groupName("顾优秀")//配置API文档的分组
                .enable(true)//enable:是否启动Swagger,如果为False不启动,True启动
                .select()
                //RequestHandlerSelectors:配置要扫描接口的方式
                .apis(RequestHandlerSelectors.any())
                //any():扫描全部
                //none():不扫描
                //withClassAnnotation():扫描类上的注解
                //basePackage():扫描指定的包
                .paths(PathSelectors.any())
                //paths()过滤什么路径
                .build();
    }

2.2.1)Swagger配置多个分组,Docket实例即可

@Bean
    public Docket docket1(){
        return  new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("顾");
    }

    @Bean
    public Docket docket2(){
        return  new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("优");
    }
    @Bean
    public Docket docket3(){
        return  new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName("秀");
    }

实现效果:
在这里插入图片描述

2.2.2)Swagger常用注释注解

在这里插入图片描述

@RestController
public class HeellowController {

    @GetMapping("/hello")
    public String hello(){
        return "hello";
    }

    @ApiOperation("User控制类")//接口名注释
    @PostMapping("/user") //在外面的接口中,只要返回值存在实体类它就会扫描
    public User user(@ApiParam("用户名") String name){
        return new User();
    }
}
@ApiModel("用户实体类") //类名注释
public class User {
    @ApiModelProperty("用户名") //字段属性名注释
    public String name;
    @ApiModelProperty("年龄")
    public int age;
    @ApiModelProperty("地址")
    public String address;
    @ApiModelProperty("密码")
    public String passworld;

}

使用后效果:
在这里插入图片描述

小结:

1. 接口的文档在线自动生成,实时更新

2.通过Swagger给一些比较难理解属性或者接口和类,添加注释信息

3. 功能测试,在线测试

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值