博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
以API驱动的开发流程:选择一个出色的API规范可以帮你节省时间和省去麻烦
阅读量:6387 次
发布时间:2019-06-23

本文共 1880 字,大约阅读时间需要 6 分钟。

在API开发的实践中有一项重要的过程就是规划API规范。API规范通常包含一组API(通常我们称之为服务)的定义,就像房子的蓝图一样。一份API规范中应该包含一个微服务应用提供了哪些API,这些API上承载的数据的定义。API规范可以帮助提前做好应用的结构设计,所以API规范的编写是开发前的关键步骤,它可以帮助你在编写代码之前降低设计缺陷或问题。 API驱动的开发流程 在以API驱动的开发过程中,开发者首先创建某一种机器和人都能识别,并且长期存在的API规范。遵循API规范,可以让你在开发API时提前捕获任何小故障或不一致之地方。虽然这个过程将使开发工作增加少量开销,但这项工作必不可少,因为它可以大大加速后面应用开发和测试维护的时间。预先规划好的API规范可以为你的开发节省数月甚至数年的时间,并且提高已开发好的API的复用性。否则,除了要在API设计上多花时间,有时候甚至必须从头构建一个新的API。 API驱动的开发流程鼓励将设计阶段与开发阶段分开,并迭代地进行处理。API的实现快速演进,但API规范保持稳定,可以确保API的使用者不会受到变化带来的影响。这也意味着使用标准化规范构建设计时,就可以通过模拟并获得用户反馈信息来测试该规范。 API规范有很多类型,对于REST API,较为流行的API规范有Swagger, RAML等。对于SOAP,通常使用基于W3C标准的,XML格式的WSDL规范。 对于REST和SOAP区别感兴趣的读者可以参考我的另一篇文章比较REST和SOAP之间的差别。 作为国内API管理领域的领导者,灵长科技开发的通用企业应用接口管理系统(CEAMS)为Node.js开发者提供了包括Web IDE在内的全套微服务应用开发以及API管理工具,以及相应的后台微服务框架:CDIF的支持。在CEAMS上,系统也为开发者提供了一份创新的内置API规范模型。这份API规范模型可以看作是一个JSON版本的WSDL规范,可以被用来描述在CEAMS系统上运行的云端微服务应用提供的JSON API接口,以及在这些API上传输的JSON数据的定义。在CEAMS系统上,系统将要求开发者从规划API开始,通过系统提供的JSON编辑器创建和编辑这份API规范:用户首先为自己的API起一个名字,同时为它自由地创建符合JSON Schema标准的,任意嵌套复杂度的API请求和返回的JSON数据结构定义。从这份API规范出发,系统将自动为开发者创建应用的框架JavaScript代码、API文档、API调用方的接入代码(目前支持Java)、以及在线的API测试工具等等。这些工具可以帮助开发者在很大程度上减少编写代码、文档和手动测试的精力,保持文档和代码永远一致,减轻对接和同步的工作量。同时,系统将根据开发者编写的API规范中提供的JSON schema数据定义,在运行时自动对输入的API请求数据做数据验证,并过滤掉不合法的请求,帮助提高微服务应用的数据安全性和稳定性。 API设计背后的逻辑思路很简单:保持足够的灵活性和复用能力。这也就意味着当你构建API时要提前计划——不仅仅是规划项目路线图以缩短开发周期,而是为未来一两年可能存在的需求做出安排,好的API应该支持多种内容类型并保持灵活性开发者要保持一颗正确的心态——因为你将长期关注你所构建的API。选择一个出色的API规范可以节省时间以及省去开发过程中不必要的麻烦,同时,选择一个全面专业的开发平台,同样也会提升开发运维效率。 灵长科技自主开发的智能连接和数据集成平台CEAMS,是为Node.js技术生态中的API和微服务应用开发者量身定做的微服务应用开发和以及API运维管理系统。将系统连接、数据集成、业务逻辑全部通过松耦合集成于一体的开发平台。系统的目标客户主要是系统和数据集成开发者。开发者利用CEAMS系统,可以通过统一的规范模式,快速地与各类IT系统,数据库,云计算服务和智能设备高效对接,平台不仅帮助开发者简化了许多与底层设备对接的复杂操作,并基于提供大量的自动化工具。CEAMS系统已在国内包括长沙警务云等多个IT项目中得到成功应用,并在单个项目中成功支持数十位开发者同时在线开发和管理自身的后台微服务应用。目前,CEAMS系统已开放免费下载使用,感兴趣的用户可以和我们联系或加入灵长科技技术支持QQ群:618450152 获取关于产品的进一步信息。

转载于:https://juejin.im/post/5ca60a2bf265da30db495823

你可能感兴趣的文章
mysql查询重复
查看>>
ORACLE触发器的管理与实际应用【weber出品】
查看>>
C# SQLite
查看>>
JNI_1
查看>>
C#Arcengine通过坐标点生成面(环形)
查看>>
来朗沃后的学习感受
查看>>
Uva 10328 逆向思维
查看>>
(转载)表服务器无法打开与报表服务器数据库的连接。所有请求和处理都要求与数据库建立连接。...
查看>>
团队成员贡献总结
查看>>
MAC下调试JSON接口的工具(HTTP抓包工具)
查看>>
Android设置Gridview中的内容不滚动,然后控件中的内容随便添加的效果。
查看>>
数论 --- 费马小定理 + 快速幂 HDU 4704 Sum
查看>>
(实用)Linux下安装JDK和Eclipse
查看>>
16 包
查看>>
[转]map hash_map unordered_map 性能测试
查看>>
如果点击项目生成时,报错如:不能编辑或者访问拒绝。
查看>>
Selenium学习(一)---Selenium IDE安装及简单介绍
查看>>
PHP控制反转(IOC)和依赖注入(DI)
查看>>
学习计划
查看>>
获取鼠标和元素的坐标点
查看>>