灵犀平台—API 的全可视化开发
![灵犀平台—API的全可视化开发](https://static001.geekbang.org/infoq/39/39d553349a2203b89046607d627e2695.png)
作为一个程序猿,接手一个老项目时,经常遇到无文档无注释,此时不提有多崩溃;作为一个设计人员,只能等功能验收时才能知道逻辑是否符合设计,若错误会造成大量返工和资源浪费;作为业务人员,只能等软件交付后才能验证业务需求是否正确实现,若错误又要大大延长需求交付周期;作为一个新人,要学习很多技术栈和编程知识才能加入到项目开发中,加上技术迭代这么快,开发门槛就更高了。
那我们是继续这样负重前行,还是寻求改变?能否寻求一种大家都更简单更高效的模式,让大家都可以成为开发者。
API 开发的痛点分析
浩鲸科技每年要交付几百个项目,根据项目不同,会涉及到多个产品研发和集成,过程中我们经常遇到 API 开发的一些问题,主要如下:
API 无具体规范:导致沟通、联调、接入成本巨大;
API 开发无法很好的衔接,开发是把设计文档转译为代码;
API 文档不全,导致后期开发维护工作量巨大;
API 技术栈很难标准化,多模块集成时经常遇到技术栈版本冲突;
API 开发门槛高,需要懂语言、微服务、分布式技术;
API 的质量不受控,基本依赖于开发人员技术能力。
总体上,API 开发体验还是比较差,开发门槛较高、效率较低、质量偏低。这种模式下,业务开发无法聚焦于业务逻辑开发,很大精力要关注技术问题,导致业务开发效率大打折扣。
随研发精进,浩鲸科技逐步沉淀了自己的技术框架、业务框架和云原生技术底座,解决了 API 开发部分技术栈的问题,无需从 0 开始研发;今年又发布了灵犀平台,解决了 API 研发主要痛点。
API 全可视化开发
浩鲸科技经过长期研发沉淀和抽象,最终形成了灵犀快速开发平台。灵犀快速开发平台是一个面向“公民开发者”的开发平台,通过标准化资产库+技术开放体系+可视化开发工具快速构建软件应用。“公民开发者”可以让更多人参与到开发中,可以让没有编程经验或者少量编程经验的人参与开发,可以让业务咨询师、产品经理、业务架构师、测试人员、项目经理、运维人员都可以成为开发人员。
![](https://static001.geekbang.org/infoq/e2/e2863787595f2c7808cf1f7ea3e1e95f.webp?x-oss-process=image/resize,p_80/format,jpg)
上图是灵犀平台的一个逻辑功能架构图。灵犀快速开发平台底层基于云原生技术框架,开发出的应用天然具备云原生特性,平台提供了设计开发平台、运行引擎平台、基础管理平台、资产管理平台。
灵犀平台提供了 API 的全程可视化研发,从 API 契约设计、API 业务建模、API 编程、API 调测、API 连接外部能力,助力 API 开发实现高效、低门槛、高质量的 API 开发,业务开发可以聚焦业务逻辑开发。
1)API 契约可视化管理
由于 API 缺乏规范,导致沟通、联调和接入成本很高。尤其是涉及众多子系统、子模块进行集成联调时候,经常由于个别模块接口的变化导致集成失败,很多模块重复返工,浪费了大量资源。
灵犀平台提供 API 的契约管理,提供了 API 契约设计、API 契约查询、API 在线拨测。通过 API 契约化,研发有了共同语言,免去沟通、联调和接入的痛点。
API 契约设计:灵犀平台提供 API 契约设计,设计人员可以通过可视化设计工具定义 API 契约,可以定义好 API 访问路径 、出入参数、调用样例等。后续开发时候遵循契约进行开发。
![](https://static001.geekbang.org/infoq/2e/2e80d68aa6421aa63f5576910a5ce646.webp?x-oss-process=image/resize,p_80/format,jpg)
API 契约查询:灵犀平台提供了 API 市场,所有发布的 API 都在市场中,在 API 市场中可以查询到所有开放的 API 契约,联调、接入时候可以按 API 市场定义契约。
API 在线拨测:灵犀平台 API 市场还提供了 API 拨测功能,提供样例直接调用 API,可以清晰看到出入参结果,清晰知道入参填写是否正确,免去沟通、联调,让接入者、使用者有更直接的体验。
![](https://static001.geekbang.org/infoq/41/41c5666deea1520b05ba9ec53b0b139a.webp?x-oss-process=image/resize,p_80/format,jpg)
2)API 可视化业务建模
灵犀平台提供了 API 的可视化业务建模,可以创建业务模型,而后在业务模型基础上创建业务对象。
业务建模:灵犀平台提供灵活多样的业务建模能力,可以根据实际场景选择不同的建模方式。若是新项目,可以直接在灵犀平台上手工建模,或者通过 SQL 自动创建模型;若是老项目,可以把模型批量导入。
行业模型库:浩鲸还沉淀了系列行业模型,业务建模时可以直接复用已有的行业模型,减少建模工作量。
![](https://static001.geekbang.org/infoq/a2/a2d65a6ef315554911971004281b915e.webp?x-oss-process=image/resize,p_80/format,jpg)
业务对象设计:业务建模主要是完成数据的物理存储,业务对象提供模型如何跟页面、服务的对接。业务对象设计时候可以定义相关对象关系、对象属性显示规则、对象脱敏设置、对象属性值设置等能力。
3)API 可视化编程
传统开发方式,对于需求分析和设计后,再由开发编码转换为实现。在编码阶段,由于编程知识和技术门槛,多数需求和设计都很难接入;对于 API 开发人员来说,要熟悉业务逻辑,还要熟悉各种技术栈,门槛比较高,而且代码质量完全随开发人员技能和心情。
灵犀平台对常用的程序控制逻辑、数据访问、API 集成、规则集成、业务流程集成、代码段或函数复用进行了抽象和封装,形成了几十个常用组件,实现了 API 的可视编程。
灵犀平台提供 API 可视化编程、API 处理逻辑,按流程可视化展示、API 处理逻辑浏览和查看、丰富的 API 组件供对接数据库、链接外部能力、自定义代码。
![](https://static001.geekbang.org/infoq/f9/f9b0ece4d3f45e9786be5b34b345a8c6.webp?x-oss-process=image/resize,p_80/format,jpg)
API 处理逻辑可视化:编排出的 API 处理逻辑是一个可视化的流程图,整个 API 的处理逻辑一目了然。从需求人员和设计人员维度,通过流程图很容易知道需求在开发落地中业务处理逻辑是否有问题。从客户角度,通过流程图可以掌握业务的实际处理逻辑,清晰了解到业务逻辑是否正确,实现知识的自主掌控。对于后续接手人员来说,代码即文档,能够快速上手,免去钻研代码的痛苦。
API 拖拽式开发:点击 API 处理流程,可以在流程上增加处理环节,提供 20+的组件供选择。包括我们编程中使用的程序控制逻辑、数据操作、访问外部服务、集成规则、集成业务流程、集成函数或自定义代码段、通知等组件。可以满足我们绝大部分 API 的开发诉求。
API 处理逻辑查看:API 业务处理逻辑开发完后,提供查询回看功能。可以再查询整体处理逻辑是否正确,每个环节的出入参映射是否正确。
丰富的组件:
逻辑组件:提供了我们编程常用的程序控制结构,有条件结构、循环结构;条件结构提供单条件(if )组件、分支判断组件(if … else )两种;循环结构提供循环组件(loop )和循环跳出组件(break);还提供了过程变量的定定义。
数据组件:数据组件提供了对数据库操作的封装,可以对查询、更新、自定义查询等关键逻辑进行封装。提供了 API 编程中要对数据库可视化能力。通过数数据访问组件,可以根据业务要求快捷对数据进行操作。
![](https://static001.geekbang.org/infoq/92/92c52f08628df44b14bb48efa5388f63.webp?x-oss-process=image/resize,p_80/format,jpg)
服务组件:编程过程免不了要调用外部系统或其他模块的服务,外部服务组件提供了外部服务访问的封装,拖拽外部服务组件就可以一键访问外部服务,无无需任何代码。
规则组件:规则组件实现跟规则中心对接,针对一些复杂业务逻辑需要通过业业务规则来控制时,可以使用规则组件来调用规则中心的能力,复用规则的扩扩展能力实现业务逻辑的规则化。
流程组件:流程组件实现了调用流程平台已有流程的能力,若在 API 逻辑中要引用流程,可以使用流程组件调用流程平台的流程启动、流程流转等能力实现现对业务流程的控制,满足业务处理中跟业务流程的关联互动。
工具箱组件:若 API 处理逻辑中还需要需要做一些特殊处理,需要单独写代码实现,工具箱组件提供一些自定义函数库供复用,可以直接使用工具箱的函数数库进行开发,也可以开发自己编写扩展的函数直接集成到 API 处理环节中。
4)API 在线调测
可视化开发可以有效降低 API 开发门槛,API 开发完后,如何验证 API 处理逻辑是否正确?灵犀平台提供在线调测功能,提供可视化调测,轻松搞定 API 处理逻辑的正确性。
API 在线调测:API 开发完后,点击服务调测功能,调测功能提供 API 各环节处理链,提供每个环节的出入参、处理耗时、处理详细日志信息。通过调测结果,可以清晰明了看到每个环节的出入参值,可以知道对于环节参数映射是否存在问题。
![](https://static001.geekbang.org/infoq/f2/f265003eb6d0e6580c75046b9c7dbd4b.webp?x-oss-process=image/resize,p_80/format,jpg)
函数调测:API 开发过程的工具箱组件可以提供自定义函数管理,对于自定义的函数也提供在线测试功能。可以输入函数入参对函数进行测试,验证函数返回是否符合开发人员预期。
5)API 能力连接器
API 开发中,我们可能要与很多外部平台、外部模块对接,而由于各种历史原因,各个平台的 API 的技术栈还会存在差异,对于比较老些的系统,比如 WebService,对于较新的系统,基本采用微服务架构,常用的微服务技术栈有 Dubbo、SpringCloud、gRPC 等,若每个 API 编程都需要去对接不同的技术栈,工作量会很大,对开发人员要求也会很高。
灵犀平台提供 API 能力连接器,可以接入丰富的服务类型,面向开发者可以统一转换为 HTTP/HTTPS 服务,免去开发集成复杂多样的痛苦。
目前灵犀平台 API 能力连接器可以接入 SOAP、Dubbo、NACOS、HTTP、gRPC、数据库等不同类型的 API 能力。
总结和展望
我们回顾下,通过犀平台进行 API 开发跟通过其他模式开发比对:
![](https://static001.geekbang.org/infoq/bd/bd48bee3d7c4ea82bb69044567320f66.png)
我们总结下,通过灵犀平台开发 API 的好处:
高效率:业务开发聚焦业务逻辑,无需关注技术;
低成本:通过复用组件和能力,交付周期更短成本更低;通过 API 处理逻辑可视化展示,降低了后续开发维护成本;
低门槛:无需编程经验,可以全民开发;
高质量:代码基本是自动生成,质量内建;
全程可视化:设计、编码、调测都提供可视化工具;
自主掌控:API 处理逻辑以流程图可视化展示,对客户可以实现自主掌控。
灵犀平台今年才发布,在整个平台上,在 API 开发上还有很长的路要走,在 API 开发能力上还需继续演进:
API 开发的架构:API 开发发布后,采用 Serverless 架构承载;API 开发只关注业务,不用关注资源、运行和运维;
API 的能力连接器丰富:需要进一步丰富 API 的能力连接器,提供更多标准化能力,实现更丰富的 API 业务场景开发;包括消息服务、缓存服务、云能力服务等;
API 组件丰富:提供更丰富的 API 组件,满足更丰富的 API 业务场景;包括文件处理类、协议转换等。
版权声明: 本文为 InfoQ 作者【鲸品堂】的原创文章。
原文链接:【http://xie.infoq.cn/article/0e0bda9bc03558257c70d8459】。文章转载请联系作者。
评论