SpringBoot 集成Swagger在线接口文档 接口注解

介绍

Swagger接口文档是一种自动生成、描述、调用和可视化的RESTful风格Web服务接口文档的工具。它通过一系列的规范和自动化工具,极大地简化了后端开发人员与前端开发人员之间的协作。

依赖

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

配置类

@EnableSwagger2//开启Swagger2
@Configuration
@EnableWebMvc
public class SwaggerConfig {
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.mybatis.mybatisplusdemo.controller"))
                .build();
    }
}

启动项目

访问:http://127.0.0.1:8080/swagger-ui/index.html
进入文档

以上就安装好了Swagger

修改配置类

@EnableSwagger2//开启Swagger2
@Configuration
@EnableWebMvc
public class SwaggerConfig {
    @Bean
    public Docket docket(){
        Contact contact = new Contact("生产队的驴","www.baidu.com","66666@qq.com");//作者信息
        return new Docket(DocumentationType.SWAGGER_2).
                apiInfo(new ApiInfo("学生管理系统API文档",
                        "基于Springboot的学生管理系统",
                        "v2.0",
                        "http://local:8080",
                        contact,
                        "ABC-6699",
                        "www.baidu.com",
                        new ArrayList<>()))
                .select().apis(RequestHandlerSelectors.basePackage("com.mybatis.mybatisplusdemo.controller")) 
                //指定扫描的包 只显示该包下的接口 RequestHandlerSelectors:指定扫描的方式
                .build();
    }
}

  • RequestHandlerSelectors.basePackage 指定扫描某个包下的接口 一般使用这个
  • RequestHandlerSelectors.asy 扫描全部
  • RequestHandlerSelectors.none 什么都不扫描
  • RequestHandlerSelectors.withMethodAnnotation(RestController.class || GetMapping.class) 扫描类上的注解 只扫描类上有 RestController 注解
  • RequestHandlerSelectors.withMethodAnnotation() 扫描方法上的注解
    在这里插入图片描述

过滤接口

有的接口不需要存在API文档里,可以过滤掉

.paths(PathSelectors.ant("/user/**"))

生产和开发环境

要求API文档只在开发环境中使用,项目上线不显示。

@Bean
public Docket docket(Environment environment){
    Profiles profiles =Profiles.of("dev");//获取环境
   Boolean isOpen= environment.acceptsProfiles(profiles); //是否处于开发环境
    return new Docket(DocumentationType.SWAGGER_2).
    		.select()
    		.enable(isOpen) //是否开启 
    		.build()
           

}

分组

可以构建多个对象 进行分组:如 用户 数据 钱包

.build()
.groupName("用户");

实体类注解

@Data
@ApiModel("部门")
public class Emp {
        @ApiModelProperty("姓名")
        private  String name;
}

只要返回的对象中是实体类就会被扫描到
在这里插入图片描述

Controlle注解

@RestController
@RequestMapping("/emp")

public class EmpController {
    @PostMapping()
    @ApiOperation("添加员工")
    public  Result add(@RequestBody  Emp emp){
       Boolean isSuccess= empService.save(emp);
        return  Result.success("操作成功",isSuccess);
    }

}

不在文档显示

@RestController
@RequestMapping("/emp")
@ApiIgnore
public class EmpController {
....
}

相关推荐

  1. 微服务框架go-zero集成swagger线接口文档

    2024-07-09 20:02:07       53 阅读
  2. 通过swagger线地址生成前端接口调用

    2024-07-09 20:02:07       28 阅读
  3. Swagger PHP Thinkphp 接口文档

    2024-07-09 20:02:07       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 20:02:07       51 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 20:02:07       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 20:02:07       44 阅读
  4. Python语言-面向对象

    2024-07-09 20:02:07       55 阅读

热门阅读

  1. 如何在MATLAB中导入表格数据并进行运算?

    2024-07-09 20:02:07       23 阅读
  2. 根据H在有限域GF(2^m)上求解生成矩阵G

    2024-07-09 20:02:07       26 阅读
  3. Perl 语言入门学习

    2024-07-09 20:02:07       22 阅读
  4. 软件工程常见知识点

    2024-07-09 20:02:07       26 阅读
  5. AI与学术的交响:ChatGPT辅助下的实验设计新篇章

    2024-07-09 20:02:07       23 阅读
  6. 云计算环境下的等级保护测评

    2024-07-09 20:02:07       19 阅读
  7. 哪些算法使用了 树 数据结构

    2024-07-09 20:02:07       21 阅读
  8. Linux驱动更新,以及ubuntu18.04升级22.04过程记录

    2024-07-09 20:02:07       36 阅读