当前位置: 首页 > 后端技术 > Java

当Swagger遇到Torna时,他瞬间长大了!

时间:2023-04-01 14:58:26 Java

Swagger是一款非常流行的API文档生成工具,相信很多小伙伴都在用吧!如果用多了,可能会觉得界面丑,功能弱。今天给大家推荐一个工具Torna,它可以和Swagger搭配使用,搭建一个界面美观、API文档强大的网站。希望对您有所帮助!SpringBoot实战电商项目商城(50k+star)地址:https://github.com/macrozheng/mallTorna简介Torna是一个企业级的接口文档解决方案,可以配合Swagger使用。具有以下功能:文档管理:支持接口文档的增删改查,接口调试,字典管理,导入导出功能;权限管理:支持接口文档的权限管理,有访问者、开发者、管理员三种角色;双模式:独创的双模式,管理模式可以编辑文档内容,浏览模式纯粹是查看文档,界面没有其他元素的干扰。Torna项目架构Torna是一个前后端分离的项目。后端使用SpringBoot+MyBatis实现,前端使用Vue+ElementUI实现。技术栈很主流!它不仅可以搭建一个API文档网站,还是一个很好的学习项目。我们先来看看它的项目结构。首先,我们需要下载Torna的源代码。下载地址为:https://gitee.com/durcframewo...下载成功后将代码导入IDEA。项目结构如下;我们再看一下server模块的结构,一个很标准的SpringBoot项目;看一下前端模块的结构,很标准的Vue项目,值得学习!安装接下来我们运行Torna,体验一下它的功能。Windows和Linux有两种安装方法。Windows下面介绍下Torna在Windows下的安装方法。如果你想深入学习Torna,可以使用这个方法。后台操作先创建一个数据库torna,然后在项目中导入mysql.sql脚本。导入成功后表结构如下;修改项目配置文件server/boot/src/main/resources/application.properties,修改对应的数据库Connection配置;#服务器portserver.port=7700#MySQLhostmysql.host=localhost:3306#schemanamemysql.schema=torna#确保账户可以运行CREATE/ALTERsql.mysql.username=rootmysql.password=root然后运行项目启动在类TornaApplication的main方法中,控制台打印如下信息表示启动成功。运行前端进入前端项目目录front,运行npminstall命令安装依赖;此时如果无法安装node-sass,可以直接使用如下命令安装;npminode-sass--sass_binary_site=https://npm.taobao.org/mirrors/node-sass/依赖安装完成后,可以通过npmrundev命令启动项目。启动成功后访问地址:http://localhost:9530/通过体验账号密码admin@torna.cn:123456访问Torna服务,界面还是不错的!使用Docker在Linux下安装Torna非常简单。如果您只想将Torna作为API文档服务使用,可以使用此方法。首先,我们需要下载Torna的Docker镜像;dockerpulltanghc2020/torna:latest下载完成后,复制配置文件application.properties到/mydata/torna/config目录下,修改数据库配置;#服务器portserver.port=7700#MySQLhostmysql.host=192.168.3.101:3306#Schemanamemysql.schema=torna#确保账户可以运行CREATE/ALTERsql.mysql.username=rootmysql.password=root然后运行Torna服务通过以下命令;dockerrun-p7700:7700--nametorna\-v/mydata/torna/config:/torna/config\-dtanghc2020/torna:latest由于镜像中直接包含前后端工程,可以直接使用。访问地址:http://192.168.3.101:7700使用Torna支持从多种工具导入接口文档,包括Swagger、smart-doc、OpenAPI、Postman等,接下来就来体验一下它的功能吧!结合Swagger使用Torna可以大大增强Swagger的功能,而且界面也够漂亮,下面就来体验一下吧!在使用之前,我们需要在Torna中进行配置。首先我们配置一个开放用户,创建一个宏账户,记住AppKey和Secret;然后创建一个项目mall-tiny-trona;然后创建一个模块,打开OpenAPI选项卡获取请求路径和token;然后使用Swagger在项目中集成Torna插件,很简单,添加如下依赖即可;cn.tornaswagger-plugin1.2.6test然后在resources目录下添加配置文件torna.json,配置说明参考注释;{//启用推送"enable":true,//扫描包,更多由"basePackage"分隔:"com.macro.mall.tiny.controller",//推送URL,IP端口对应Torna服务器"url":"http://localhost:7700/api",//appKey"appKey":"20211103905498418195988480",//秘密"secret":"~#ZS~!*2B3I01vbW0f9iKH,rzj-%Xv^Q",//moduletoken"token":"74365d40038d4f648ae65a077d956836",格式:环境名称,调试路径,多个以“|”分隔"debugEnv":"test,http://localhost:8088",//pusher"author":"macro",//开启调试:true/false"debug":true,//是否替换文档,true:替换,false:不替换(附加)Default:true"isReplace":true}接下来调用SwaggerPlugin的pushDoc方法将接口文档推送给Torna;@RunWith(SpringRunner.class)@SpringBootTestpublicclassMallTinyApplicationTests{@TestpublicvoidpushDoc(){//推送文档到Torna服务,默认在resources下搜索torna.jsonSwaggerPlugin.pushDoc();}}推送成功后,接口列表中会显示如下接口信息;查看接口的详细信息,还是很全面的,接口也不错!运行我们的项目后,我们可以直接调试上面的界面,调用登录界面试试;如果我们想设置一个公共的请求头,比如登录认证的Authorization头,可以在模块配置中配置;在后台接口完成之前,如果我们需要Mock数据,可以使用Mock函数;这里我们mock了登录界面,当然你也可以使用Mock脚本,只要定义好界面,前端就可以使用Mock组合数据了。结合smart-doc使用smart-doc是一款无注释侵入的API文档生成工具。具体用法请参考《smart-doc使用教程》。这里我们介绍它与Torna结合使用。首先修改mall-tiny-smart-doc项目的smart-doc配置文件smart-doc.json,添加如下Torna配置;{//torna平台对接appKey"appKey":"20211103905498418195988480",//torna平台appToken"appToken":"b6c50f442eb348f48867d85f4ef2eaea",//torna平台secret"secret":"~#ZS~!*2B3I01vbW0f9iKH,rzj-%Xvj-%Xv^Q",//torna平台地址,填写自己的私有部署地址"openUrl":"http://localhost:7700/api",//测试项目接口环境"debugEnvName":"testenvironment",//测试项目接口地址"debugEnvUrl":"http://localhost:8088"}由于smart-doc的Maven插件已经具备推送文档到Torna的功能。我们只需要双击smart-doc:torna-rest按钮;然后在Torna中,我们可以看到相关的接口文档,非常方便!小结当一个工具越来越流行,但有些功能需求得不到满足时,往往会出现一些增强的工具。Torna就是这样一个Swagger的工具。Torna的文档界面和调试功能明显比Swagger高很多,而且还加入了权限管理功能,大大增强了文档的安全性。觉得不错的话可以试试哦!参考官方文档:http://torna.cn/项目源码地址https://github.com/macrozheng...本文GitHubhttps://github.com/macrozheng/mall-learning已收录,欢迎大家来Star吧!