当前位置: 首页 > Web前端 > vue.js

Java的Swagger接口怎么会丑陋和脆弱?

时间:2023-04-01 13:08:35 vue.js

我们团队在做CRMEB-JAVA开源商城系统的时候,使用了uni-app,这也是时下流行的移动开发技术。这就涉及到前后端分离。一般我们使用java来开发前后端分离项目时,都会用到Swagger。Swagger是一个用于生成、描述、调用和可视化RESTful风格的WebAPI服务的框架。Swagger使得部署管理和使用强大的API变得更加容易,但这只是在小项目中,API接口并不多。随着CRMEB-JAVA开源商城系统的不断优化,功能的不断增加,前后端分离,接口数量一度超过200多个,使得系统中的一些用户体验变得更加还有更差的,比如:提交参数是json无法格式化,搜索错误参数麻烦,返回结果无法折叠,读起来太长,真的很蛋疼!但是,作为程序员,你一定知道,你遇到的问题,别人肯定也遇到过,一定有热心的大牛解决了这个问题。于是,一个加强版的Swagger诞生了,叫做knife4j,他对我们的帮助非常大。解决以上问题,引用原作者的话简单了解一下knife4j:希望knife4j像匕首一样小巧、轻便、强大,也希望让她成为Swagger接口文档的通用解决方案,而不仅仅是专注于前端Ui前端。首先先看一下项目上刚刚上传的knife4j优化过的Swagger:看看上图是不是一目了然,最重要的是搜索框可以搜索到相关的API接口,方便快速查询还有你可以在线调试界面,然后用图片展示!knife4j开源项目说明:结构说明如下:|模块名称|说明||admin|CloudSwagger接口文档注册管理中心,集成网关组合整合任意微服务文档,本模块尚未开始开发|knife4j-extension|chrome浏览器增强swagger接口文档ui,快速渲染swagger资源,本模块未开始开发开始开发knife4j-service|swagger服务的一系列接口服务程序。knife4j-front|这个模块还没有开始开发|knife4j-spring-ui纯前端静态版本,用于集成非Java语言。本模块尚未开始开发knife4j-vue|本模块为knife4j前端源码模块,基于Vue框架开发,knife4j-spring-ui中的文件为swagger-bootstrap-ui的前身|knife4j,使用该模块打包构建,最新发布版本为1.9.6swagger-bootstrap-ui-front|swagger-bootstrap-ui纯前端版,基于1.9.3的分支对其进行改造,可以使用其他开发语言系统。改造后,SpringBoot项目还没有更新。使用knife4j官方提供的DOM:knife4j-spring-boot-demo研究CRMEB_JAVA开源商城系统,在实际开发中学习如何将其集成到项目中。!maven引用第一步:在项目的pom.xml文件中引入knife4j的依赖,如下:spring-boot-starter2.0.2如果你想使用bom导入,请参考MavenBom方法创建Swagger配置文件新建一个Swagger配置文件SwaggerConfiguration.java文件,并创建一个springfox提供的Docket分组对象。代码如下:@Configuration@EnableSwagger2@EnableKnife4j@Import(BeanValidatorPluginsConfiguration.class)publicclassSwaggerConfiguration{@Bean(value="defaultApi2")publicDocketdefaultApi2(){Docketdocket=newDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())//组名.groupName("2.X版本").select()//这里指定Controller扫描包路径.apis(RequestHandlerSelectors.basePackage("com.swagger.bootstrap.ui.demo.new2")).paths(PathSelectors.any()).build();返回摘要;}}上面有两个注解需要特别说明,如下表所示:|注释|说明||----|----|@EnableSwagger2|这个注解是knife4j提供的增强注解。ui提供了动态参数、参数过滤、界面排序等增强功能,如果要使用这些增强功能,必须加上这个注解,否则在浏览器中输入地址不加访问:http://host:port/doc.html点击进入CRMEB-JAVA开源商城项目学习查看:Gitee项目地址感谢阅读,如果对您有帮助,欢迎关注CRMEB掘金号云有我们的开源商城项目,知识付费项目都是基于PHP+vue+mysql开发的。欢迎您将它们用于学习和研究。您可以通过单击开始发财。关注我才不会迷路!