目录
Swagger简介
1、大背景
2、集成Swagger
3、配置Swagger
Swagger 配置扫描接口
配置是否启动Swagger
配置API文档的分组
实体类配置:
Controller 类配置
前后端分离:Vue+SpringBoot
后端时代:
前端只用管理静态页面;html==>后端。模板引擎JSP=>后端是主力
前后端分离式时代:
后端:后端控制层、服务层、数据访问层【后端团队】前端:前端控制层、视图层【前端团队】伪造后端数据,json 已经存在了,不需要后端,前端工程依旧能跑起来
前后端如何交互?==》API前后端相对独立,松耦合;前后端甚至可以部署在不同的服务器上;产生一个问题:
前后端集成联调,前端人员和后端人员无法做到“即使协商,尽早解决”,最终导致问题集中爆发;解决方案:
指定schema【计划的提纲】,实时更新最新API,降低集成的风险。制定word计划文档;前后端分离:前端测试后端接口:postman
后端提供接口,需要实时更新最新的消息及改动;
3、SpringBoot集成Swagger
1) 新建一个SpringBoot web项目
2)导入相关依赖
<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>3)编写一个HelloController
@RestController public class HelloController { @RequestMapping(value = "/hello",method = RequestMethod.GET) public String hello(){ return "hello"; } }4) 配置 Swagger
@Configuration @EnableSwagger2 public class SwaggerConfig { }5)启动项目 访问http://localhost:8080/swagger-ui.html
访问:
Docket.select()
//配置 Swagger的Docket 的bean实例 @Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //RequestHandlerSelectors 配置要扫描接口的方式 //basePackage 指定要扫描的包 //any():扫描全部 //none():不扫描 //.RequestHandlerSelectors.withClassAnnotation(RestController.class) 扫描类上的注解,参数是一个注解的反射对象;实例为只扫描有注解RestController的类 //RequestHandlerSelectors.withMethodAnnotation(GetMapping.class) 扫描方法上的注解,实例为 只扫描有GetMapping 注解的方法 .apis(RequestHandlerSelectors.basePackage("com.man")) //paths() 过滤什么路径 .paths(PathSelectors.ant("/")) .build(); }配置生产环境不启用Swagger
//配置 Swagger的Docket 的bean实例 @Bean public Docket docket(Environment environment){ //设置要显示的swagger环境 Profiles profiles=Profiles.of("dev","test"); //通过environment.acceptsProfiles 判断是否处在自己设定的环境当中 boolean flag=environment.acceptsProfiles(profiles); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) //设置是否开启Swagger,如果为Flase 则swagger 不能在浏览器中访问 .enable(flag) .select() .apis(RequestHandlerSelectors.basePackage("com.man")) //.paths(PathSelectors.ant("/")) .build(); }//配置分组 .groupName("珂瑞")
//配置 Swagger的Docket 的bean实例 @Bean public Docket docket(Environment environment){ //设置要显示的swagger环境 Profiles profiles=Profiles.of("dev","test"); //通过environment.acceptsProfiles 判断是否处在自己设定的环境当中 boolean flag=environment.acceptsProfiles(profiles); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) //配置分组 .groupName("珂瑞") //设置是否开启Swagger,如果为Flase 则swagger 不能在浏览器中访问 .enable(flag) .select() .apis(RequestHandlerSelectors.basePackage("com.man")) //.paths(PathSelectors.ant("/")) .build(); }页面显示
如何设置多个分组
多增加几个Docket 方法
@Bean public Docket docketA(){ return new Docket(DocumentationType.SWAGGER_2).groupName("A"); } @Bean public Docket docketB(){ return new Docket(DocumentationType.SWAGGER_2).groupName("B"); } @Bean public Docket docketC(){ return new Docket(DocumentationType.SWAGGER_2).groupName("C"); }