前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >API管理-定制yaml文件管理api并基于yaml文件生成client端、server端、springboot完整程序

API管理-定制yaml文件管理api并基于yaml文件生成client端、server端、springboot完整程序

作者头像
秋日芒草
发布2019-07-03 17:19:54
3.6K0
发布2019-07-03 17:19:54
举报
文章被收录于专栏:JavaWeb

1. api管理方式背景

随着项目团队不断地规范,开发流程的每一步都在不断的变化,变得更加高效并且方便管理;api管理也经历了不少的变化,主要变化从上到下演进:

  • 编写后端接口api,从status的action到springmvc的@RequestMapping,这些框架的确可以帮我们完成后端接口的编写,但对于前后端分离的项目,还需要编写项目组制定的接口文档;我相信,没多少程序员写完接口后还想写接口文档的。
  • 由于项目组开发系统比较多,为了统一管理公司内部所有系统的接口文档,这个时候有的公司会定制化自己的接口文档管理应用,通过这个应用可以简单的实现在网站上直接编写接口文档信息,无须考虑接口文档样式等等,这样做的确比上一种好一点,通过对定制化这个网站,我们可以做到在线调试接口情况、分版本管理、分配api管理权限。API管理-使用开源xxl-api项目管理接口
  • 在项目中集成swagger并在接口上加上api信息的注解,并通过swagger-ui.html界面进行api接口的查看和调试,详细请参考:API管理-基于SpringBoot项目集成swagger实现接口文档自动生成,如果觉得这套ui不友好,没关系,可以换,API管理-舍弃springfox-swagger-ui,采用功能更加丰富的swagger-bootstrap-ui
  • 通过上面一种就基本可以完成api管理操作了,但这样的swagger管理起来也存在代码侵入性太高,为了达到目的还需要反复的调整接口注解或参数;既然存在问题,阅读完这篇文章你就会学会:如何定制yaml文件管理api并基于yaml文件生成client端、server端、springboot完整程序,接下来进入主题。

2. 需要了解几个概念

  • swagger 2.0和open api 3.0规范,其实就是规范对于的yaml文件格式定义,不同的情况下可以通过特定的规范进行不同后端代码生成,对于swagger 2.0和open api 3.0规范生成代码的插件也有好多个,swagger 2.0和open api 3.0还支持互转,请参考:swagger2openapi

这里先介绍基于swagger 2.0生成后端代码,试过open api 3.0去做,但插件不太给力,没有达到我想要的效果,没法达到:基于yaml文件生成client端、server端、springboot完整程序;

  • 满足swagger 2.0文件有json、yaml二种格式的,所以以后我们只要学会编写这种yaml或json文件编写规范就可以对接口进行管理。

3. 使用swagger-codegen完成基于yaml文件生成client端、server端、springboot完整程序

请先阅读,这篇文章,写的不错:spring boot项目使用swagger-codegen生成服务间调用的jar包,百度了很多帖子,就这篇文章给了我想要的效果。

通过这种方法我可以生成一个只带NameApi的接口的程序("interfaceOnly" : "true"),通过对这个程序的打包依赖到项目中,就可以完成对api管理,每次更新api接口只需要编写好yaml重新生成一下jar并依赖到项目中就行,这样还可以减少swagger相关注解的侵入性。通过这种方式只用在controller上实现对于的jar中的接口,还不需要调整service和mapper中的逻辑,service和mapper层还可以通过之前方式直接生成与数据库交互的通用接口。

除此之外swagger-codegen还可以通过"library" : "feign"生产我们想要的客户端代码(jar),这里的客户端代码就是一些封装过的工具,可以通过指定方式去和server交互,如:sso-client.jar就是负责与sso-server进行交互的。swagger-codegen功能还有很多,这里就不一一介绍了。

代码语言:txt
复制
 (adsbygoogle = window.adsbygoogle || []).push({});
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档