欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > SpringBoot 集成Swagger在线接口文档 接口注解

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

2024/10/24 9:17:03 来源:https://blog.csdn.net/dpc5201314/article/details/140141324  浏览:    关键词: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 {@Beanpublic 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 {@Beanpublic 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 {
....
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com