微服务api和通用api(微服务接口文档一站搞定)

概述

企业接口文档解决方案,目标是让文档管理变得更加方便、快捷。Torna采用团队协作的方式管理和维护项目API文档,将不同形式的文档纳入进来,形成一个统一的维护方式。

Torna弥补了传统文档生成工具(如swagger)的不如之处,在保持原有功能的前提下丰富并增强了一些实用的功能。

微服务api和通用api(微服务接口文档一站搞定)(1)

下载安装包

下载地址: https://gitee.com/durcframework/torna/releases

解压文件:如图所示。

微服务api和通用api(微服务接口文档一站搞定)(2)

修改配置:以下数据库配置项修改为各位读者自己的配置。

# Server port server.port=7700 # MySQL host mysql.host=${MYSQL_HOST:localhost:3306} # Schema name mysql.schema=${MYSQL_SCHEMA:torna} # Make sure the account can run CREATE/ALTER sql. mysql.username=${MYSQL_USERNAME:root} mysql.password=${MYSQL_PASSWORD:root}

导入项目初始化脚本

https://gitee.com/durcframework/torna/blob/master/mysql.sql

启动项目

执行sh startup.sh启动(Windows执行startup.bat)

用户名:admin,密码:123456

创建空间

登录成功后,直接点击创建空间

微服务api和通用api(微服务接口文档一站搞定)(3)

微服务api和通用api(微服务接口文档一站搞定)(4)

进入商品中心,创建商品主数据和商品定价2个项目。

微服务api和通用api(微服务接口文档一站搞定)(5)

进入商品主数据,创建大件商品主数据模块。

微服务api和通用api(微服务接口文档一站搞定)(6)

这里的OpenAPI将用于管理和保存在线接口文档。

微服务api和通用api(微服务接口文档一站搞定)(7)

smart-doc简介

smart-doc从2018年的开源后的持续发展中,我们收到了很多的用户的需求, 很多企业用户非常需要一个好用的集中化API管理平台。在过去Yapi可以说是国内开源市场长用户量比较多的开源产品。但是在smart-doc作者长期的观察中,Yapi有诸多的问题。因此2020年,我们一直在社区寻找合适的开源合作者来重心打造一款企业级的API文档管理平台。很幸运的在开源社区找到了@tanghc。 @tanghc是一个有多个开源项目的作者,而且非常热衷于开源。我们向 @tanghc 描述了做API管理平台的项目和理念。最终我们达成了做torna的共识。为开源社区提供一个好的文档生成和管理的解决方案。当然未来我们会探索出商业化的产品。 但是smart-doc和smart-doc的maven、gradle插件是免费。当前提供的torna基础功能也是免费开源给社区使用。torna商业版本主要面向企业的高级功能版本。

微服务api和通用api(微服务接口文档一站搞定)(8)

Springboot集成smart-doc

引入smart-doc插件。

<plugin> <groupId>com.github.shalousun</groupId> <artifactId>smart-doc-maven-plugin</artifactId> <version>[最新版本]</version> <configuration> <!--指定生成文档的使用的配置文件,配置文件放在自己的项目中--> <configFile>./src/main/resources/smart-doc.json</configFile> <!--指定项目名称--> <projectName>测试</projectName> <!--smart-doc实现自动分析依赖树加载第三方依赖的源码,如果一些框架依赖库加载不到导致报错,这时请使用excludes排除掉--> <excludes> <!--格式为:groupId:artifactId;参考如下--> <!--也可以支持正则式如:com.alibaba:.* --> <exclude>com.alibaba:fastjson</exclude> </excludes> <!--includes配置用于配置加载外部依赖源码,配置后插件会按照配置项加载外部源代码而不是自动加载所有,因此使用时需要注意--> <!--smart-doc能自动分析依赖树加载所有依赖源码,原则上会影响文档构建效率,因此你可以使用includes来让插件加载你配置的组件--> <includes> <!--格式为:groupId:artifactId;参考如下--> <!--也可以支持正则式如:com.alibaba:.* --> <include>com.alibaba:fastjson</include> </includes> </configuration> <executions> <execution> <!--如果不需要在执行编译时启动smart-doc,则将phase注释掉--> <phase>compile</phase> <goals> <!--smart-doc提供了html、openapi、markdown等goal,可按需配置--> <goal>html</goal> </goals> </execution> </executions> </plugin>

configFile标签中的配置项是smart-doc配置文件的地址。将以下信息放到./src/main/resources/smart-doc.json中。

{ "serverUrl": "http://127.0.0.1", //服务器地址,非必须。导出postman建议设置成http://{{server}}方便直接在postman直接设置环境变量 "isStrict": false, //是否开启严格模式 "outPath": "", //指定文档的输出路径,maven插件不需要,gradle插件必须 "packageFilters": "",//controller包过滤,多个包用英文逗号隔开 "projectName": "smart-doc",//配置自己的项目名称 "appToken": "c16931fa6590483fb7a4e85340fcbfef", //OpenAPI中对应的token,上文中有提及 "appKey": "20201216788835306945118208",//torna平台对接appKey,torna 1.11.0版本后不再需要, @since 2.0.9, "secret": "W.ZyGMOB9Q0UqujVxnfi@.I#V&tUUYZR",//torna平台secret,torna 1.11.0版本后不再需要,@since 2.0.9 "openUrl": "http://localhost:7700/api",//torna平台地址,填写自己的私有化部署地址@since 2.0.9 "debugEnvName":"测试环境", //torna测试环境 "replace": true,//推送torna时替换旧的文档 "debugEnvUrl":"http://127.0.0.1",//torna }

编写rest接口

/** * @Author : 无双 * @Date : 3/15/22 8:50 PM * @Version : V1.0 * @Description : 商品主数据Rest接口 */ @RestController @RequestMapping("/goods") public class ProductController { /** * 保存产品信息 * * @param productInfo */ @RequestMapping("save") public void save(ProductInfo productInfo) { } /** * 修改产品信息 * * @param productInfo */ @RequestMapping("update") public void update(ProductInfo productInfo) { } }

生成rest接口文档

使用smart-doc生成rest接口文档并推送到torna

微服务api和通用api(微服务接口文档一站搞定)(9)

torna接口平台接收到接口文档。

微服务api和通用api(微服务接口文档一站搞定)(10)

微服务api和通用api(微服务接口文档一站搞定)(11)

编写Dubbo接口

/** * @Author : 无双 * @Date : 3/15/22 9:07 PM * @Version : V1.0 * @Description : 产品接口 */ public interface ProductFacade { /** * 保存产品Dubbo接口 * * @param productInfo */ void save(ProductInfo productInfo); /** * 更新产品Dubbo接口 * * @param productInfo */ void update(ProductInfo productInfo); } /** * @Author : 无双 * @Date : 3/15/22 9:09 PM * @Version : V1.0 * @Description : 产品接口实现类 */ @Service public class ProductServiceImpl implements ProductFacade { /** * 保存产品Dubbo接口 * * @param productInfo */ @Override public void save(ProductInfo productInfo) { } /** * 更新产品Dubbo接口 * * @param productInfo */ @Override public void update(ProductInfo productInfo) { } }

生成Dubbo接口文档

使用smart-doc生成Dubbo接口文档并推送到torna

微服务api和通用api(微服务接口文档一站搞定)(12)

微服务api和通用api(微服务接口文档一站搞定)(13)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页