900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 放弃丑陋的 swagger-ui 使用 knife 接口文档生成神器

放弃丑陋的 swagger-ui 使用 knife 接口文档生成神器

时间:2023-05-17 14:25:34

相关推荐

放弃丑陋的 swagger-ui 使用 knife 接口文档生成神器

文章目录

接口生成利器 knife 介绍springboot 整合 knifepom.xml 文件增加依赖编写Swagger2Config配置文件注意事项 总结

knife Gitee 地址:/xiaoym/knife4j

接口生成利器 knife 介绍

之前项目中一直在使用 swagger 生成后台接口文档,很好用,至少比之前用 word 写接口文档 postman 调试接口方便多了。swagger 提供了一套前端页面,但是需要在代码中加入注解,如:@Api@ApiOperation等,耦合度比较高,但使用起来很方便。对我强迫症的我来说,swagger-ui 页面奇丑无比,给我的感觉就是特别乱,并且没办法保存常用的参数,使用起来很不方便。

这篇文章来介绍knife,是 swagger 的增强版。该UI增强包主要包括两大核心功能:文档说明在线调试

文档说明:根据Swagger的规范说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息,使用 knife 能根据该文档说明,对该接口的使用情况一目了然。在线调试:提供在线接口联调的强大功能,自动解析当前接口参数,同时包含表单验证,调用参数可返回接口响应内容、headers、Curl请求命令实例、响应时间、响应状态码等信息,帮助开发者在线调试,而不必通过其他测试工具测试接口是否正确,简介、强大。并且可以实现缓存请求参数,设置header 或 query 全局参数和值。

功能不过多介绍,直接上图演示:

springboot 整合 knife

springboot 基本框架搭建就不过多介绍了,直接演示 springboot 整合 knife 需要改动的配置。

pom.xml 文件增加依赖

由于是springfox-swagger的增强UI包,所以基础功能依然依赖swaggerspringfox-swagger的 jar 包必须引入。然后引入knife4j-spring-ui替代原来的swagger-ui

<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-ui</artifactId><version>3.0.2</version></dependency>

编写Swagger2Config配置文件

Swagger2Config 文件内容如下:

@Configuration@EnableSwagger2public class Swagger2Config {@Beanpublic Docket createRestApi() {ApiInfo apiInfo = new ApiInfoBuilder().title("台接口").description("这里描述内容").contact(new Contact("Liuyanmin", "", "")).termsOfServiceUrl("http://localhost:60000/").version("1.0").build();return new Docket(DocumentationType.SWAGGER_2).host("http://localhost:60000/").groupName("后台接口").apiInfo(apiInfo).select().apis(RequestHandlerSelectors.basePackage("com.example.controller")).paths(PathSelectors.any()).build();}}

访问地址,knife默认访问地址是:http://${host}:${port}/doc.html

swagger-ui的样式页面还是可以访问的,地址:http://${host}:${port}/swagger-ui.html,这个不建议使用了,页面太丑了,了解一下就可以了。

注意事项

SpringBoot 中访问doc.htmlswagger-ui.html报404的解决办法

@Configurationpublic class IntercpetorConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// 设置swagger静态资源访问registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}}

Springfox-swagger默认提供的接口和依赖的资源文件需要在拦截器或权限验证中过滤掉,过滤内容如下:

/swagger-ui.html,/swagger-resources/**,/csrf,/webjars/**

总结

若项目中之前使用过swagger生成接口文档,改成knife其实很简单,只需要两步:

pom.xml 中把swagger-uijar包替换成knife4j-spring-ui访问地址由原来的http://${host}:${port}/swagger-ui.html改成http://${host}:${port}/doc.html

就这么简单。

还有更多优秀开源的接口文档生成工具,感兴趣的可以自己看一下。

gitbook

smart-doc

redoc

yapi

apidoc

showdoc

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。