专栏首页JavaWebAPI管理-定制yaml文件管理api并基于yaml文件生成client端、server端、springboot完整程序

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

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功能还有很多,这里就不一一介绍了。

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • API管理-使用开源xxl-api项目管理接口

    为了后端更好的与测试、前端协调开发和甲方验收文档交接工作(一般都会将给到甲方整个应用的接口文档、数据表结构、架构原理),所有一个团队能通过一个系统或插件协调相关...

    秋日芒草
  • API管理-基于SpringBoot项目集成swagger实现接口文档自动生成

    上一次博客(API管理-使用开源xxl-api项目管理接口)中我也提到过接口文档在整个生命周期中的重要性以及使用开源xxl-api的优缺点,缺点就是没法自动完成...

    秋日芒草
  • 基于Spring自定义标签

    秋日芒草
  • ORA-32004 的错误处理

    启动数据库时,收到了ORA-32004 的错误,错误多是一些过时且在当前版本中不在使用的参数,如果碰到类似的错误,只需要将其

    Leshami
  • 为什么Oracle广受欢迎 ?

    很久以前,Sybase中国研发中心的技术总监曾经问过我一个问题,他说:从你的观点来看,为什么Oracle广受欢迎,超过Sybase以及其他产品。 我说,因为Or...

    数据和云
  • 2015 OOW:Oracle数据库的未来

    2015年10月27日,Oracle Openworld第二天,旧金山。云和恩墨盖国强在现场为您带来第一手的数据库报道。 Openworld的会议是这样展开的 ...

    数据和云
  • 2016数据库大会访谈:杨廷琨谈环境变化优秀DBA会抬头看路

    随着科技飞速发展,软硬件技术更新换代,数据库领域也在不断发生着变化,传统数据库与新技术的结合、数据库的云化等等。改变是为了更好的生存发展,数据库...

    数据和云
  • Oracle公司深入AI领域:收购机器学习平台DataScience.com

    Oracle公司今天宣布收购了DataScience.com,这是一个数据科学项目和工作负载的私有云平台。

    AiTechYun
  • 漏洞预警 | WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)

    Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间...

    FB客服
  • [Oracle集群软件全解析] Oracle集群安装/升级/克隆总览

    上节介绍运行集群环境所需的进程,这节总体上说Oracle集群的安装,升级以及克隆等

    bsbforever

扫码关注云+社区

领取腾讯云代金券