Swagger
1.Swagger介绍
Swagger 是一个用于设计、构建、记录和使用 RESTful API 的强大工具集。它提供了一套规范(称为 OpenAPI 规范)以及相关的工具,帮助开发者描述并测试 API。
1.1我的理解
Swagger 是一个接口文档,根据个性化定制 (不同组别,不同Controller下,不同开发环境下,接口/参数)生成一份接口文档测试。 可以实时更新,方便协同作用
2.Swagger开始
2.1新建一个SpringBoot项目
由于我使用的使java8,想分享一下怎么创建Java8的spring boot项目
使用阿里云的地址创建
http://start.aliyun.com
2.2引入Swagger依赖,完成SpringBoot整合
可在maven仓库中获取
https://mvnrepository.com/
<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>
2.3完成Swagger配置类编写
@Configuration //告诉SpringBoot这是配置类
@EnableSwagger2 //开启swagger2
public class SwaggerConfig {//配置swagger的docket Bean实例@Beanpublic Docket docket(Environment environment){//设置你想要展示的环境Profiles pro = Profiles.of("pro");//获取项目环境boolean profiles = environment.acceptsProfiles(pro); //检测是否为pro的环境 返回boolean值System.out.println("---------------");System.out.println(profiles);System.out.println("---------------");//自定义一个docker (swagger实例)return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())// swagger信息的布局.groupName("zyf") //选择组名.select()//配置要扫描接口的方式 //选择注释.apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))//过滤路径.paths(PathSelectors.ant("/**")).build()//select 与 build 配套使用//是否启用swagger.enable(profiles);}//配置第二套swagger环境@Beanpublic Docket docket1(){return new Docket(DocumentationType.SWAGGER_2).groupName("syl");}private ApiInfo apiInfo(){Contact contact = new Contact("zyf","https://www.bilibili.com","2442@qq.com");return new ApiInfo("鸿瑞微信小程序API文档","生存,以至于更好地生存!","v1.0","https://www.bilibili.com/video/BV1Y441197Lw/?p=2&spm_id_from=pageDriver&vd_source=2149b178b477a9e92cdc9c4a25972c47",contact,"Apache 2.0","http://www.apache.org/licenses/LICENSE-2.0",new ArrayList());}
}
2.4部分参数功能解释
2.5Swagger注解
@ApiOperation("INVOKE方法")@PostMapping("/invoke")public Good invoke(@ApiParam Good good){return good;}
3.Swagger页面展示
4.报错及处理
引入Swagger可能会出现空指针
修改办法 引用该大佬的分享
修改springboot 版本 我修改为低版本springboot 2.3.2.Release 版本不适配问题