教你怎么用SpringBoot整合Swagger作为API

网友投稿 671 2023-01-22

教你怎么用SpringBoot整合Swagger作为API

教你怎么用SpringBoot整合Swagger作为API

前言

相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不够的,随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了。而自动生成接口文档的框架就是我们今天的主角Swagger!

一、基本使用

使用时需要导入下面的依赖:

io.springfox

springfox-swagger2

http:// 2.9.2

io.springfox

springfox-swagger-ui

2.9.2

然后书写下面的配置类即可完成配置!

@Configuration

@EnableSwagger2 //开启swagger2

public class SwaggerConfig {

}

浏览器访问http://localhost:8910/swagger-ui.html,即可可以看到下面的界面:

二、自定义描述内容

@Configuration

@EnableSwagger2 //开启swagger2

public class SwaggerConfig {

@Bean

public Docket docket(){

return new Docket(DocumentationType.SWAGGER_2)

.apiInfo(apiInfo())

//是否启动swagger

// .enable(false)

.groupName("卢泽龙")

.select()

//RequestHandlerSelectors:配置要扫描的接口方式

// basePackage : 指定要扫描的包

.apis(RequestHandlerSelectors.basePackage("org.lzl.laboratory.controller"))

// any:扫描全部

// .apis(RequestHandlerSelectors.any())

// none:不扫描

// .apis(RequestHandlerSelectors.none())

// withClassAnnotation:扫描类上的注解

// .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))

// withMethodAnnotation:扫描方法上的注解

// .apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))

//path() 过滤什么路径

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

.build();

}

//配置swagger信息 ==> apiInfo

private ApiInfo apiInfo(){

Contact contact = new Contact("卢泽龙","https://blog.csdn-/MoastAll","382491212@qq.com");

return new ApiInfo(

"云上实验室的API文档说明",

"abcdefg",

"v1.0",

"https://blog.csdn-/MoastAll",

contact,

"Apache 2.0",

"http://apache.org/licenses/LICENSE-2.0",

new ArrayList()

);

}

}

其中如果有这pAxyTVqc样的需求:在dev,test环境中开启swagger,其他环境不开启swagger,我们只需要给Docket加上下面的environment参数,再用acceptsProfiles方法来判断环境是否符合要求!

使用的效果为:

三、给下面的models和接口一些提示信息

1.给实体类加入下面的注解

http://localhost:8910/swagger-ui.html的models就会呈现下面的界面:

2.给controller加上下面的注解

就会出现下面的提示信息:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:带你快速上手Servlet
下一篇:混合app开发(混合app开发用什么技术)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~