linux cpu占用率如何看
401
2022-09-18
Knife4j-Swagger的进化版
概述
Swagger已广泛应用到Java项目开发中,在前后端开发过程中,相当于一个桥梁作用。后端人员根据OpenAI官方定义的注解就可以把接口文档丰富地呈现给前端开发人员。提供了WebUI的在线界面,省去了开发人员写文档的时间,提升了开发效率,沟通效果也相应提升。
“Knife4j 是一个 SwaggerUI 的增强工具,同时也提供了一些增强功能,使用 Java+Vue 进行开发,帮助开发者能在编写接口注释时更加完善,基于 OpenAPI 的规范完全重写 UI 界面,左右布局的方式也更加适合国人的习惯。”
从上文可知,Knife4j是SwaggerUI的增强,主要是在UI界面做了优化,更方便我们在开发中使用。
界面比较
Swagger的默认界面
我们先看看Swagger默认界面是怎样的?
默认链接地址:
这里稍微说明一下,可能有些开发工具有些不一样,但我们添加上述的pom配置文件的时候,会显示红色的,并包没有找到对应jar包,或者报以下错误信息:
ould not find artifact com.github.xiaoymin:swagger-bootstrap-ui:pom:
我一开始以为是有问题,但我重新更新一下项目工程里的maven包就可以了,以IDEA为例,可参考一下操作。
让工具重新导入一下jar包,然后就可以了。
修改Swgger配置类
另外,我们把Swagger配置类也注释掉,添加Knifer4j的相关配置类。如下:
package com.ispeasant.demo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2public class SpringFoxSwaggerConfig { /*@Bean public Docket swaggerSpringMvcPlugin() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .build().apiInfo(apiInfo()) ; } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("RESTful API") .description("基础管理") .termsOfServiceUrl("") .version("1.0") .build(); }*/ @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.bycdao.cloud")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("swagger-bootstrap-ui RESTful APIs") .description("swagger-bootstrap-ui") .termsOfServiceUrl(" .contact("developer@mail.com") .version("1.0") .build(); }}
最后启动一下程序,看看效果。
访问界面
默认访问地址是:com.ispeasant.demo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2public class SpringFoxSwaggerConfig { /*@Bean public Docket swaggerSpringMvcPlugin() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .build().apiInfo(apiInfo()) ; } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("RESTful API") .description("基础管理") .termsOfServiceUrl("") .version("1.0") .build(); }*/ @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.ispeasant.demo.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("swagger-bootstrap-ui RESTful APIs") .description("swagger-bootstrap-ui") .termsOfServiceUrl(" .contact("developer@mail.com") .version("1.0") .build(); }}
最后重新启动一下程序,访问看看。
从截图里可以看到,我们自己封装的接口,已经在这里展示出来了。
调试功能
到这里,我们把knife4j搭建好了,也试用了里面的功能。
总结
如果大家在开发过程中,觉得Swagger的界面比较简单,使用起来不是很方便,大家可以考虑一下这个Knife4j,它提供比较丰富的界面,功能也比较丰富,确实会提高大家开发效率。我自己这边用得不算多,而且我们接口封装也不是很多,所以就没有很深入去体验所有功能。如果大家感兴趣,可以再深入去研究一下。
本次代码,我已放到百度网盘,有需要的,可进行获取。
链接:获取代码
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~