BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

MuleSoft开源用于设计RESTful APIs的工具RAML Tools

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 廖煜嵘 关注 0 他的粉丝 发布于 2013年11月10日. 估计阅读时间: 5 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

近日,MuleSoft发布了3款基于RAML的用于设计、评估和测试RESTful APIs的工具。

RAML来源于RESTful API建模语言,它是一种让人们易于阅读并且能让机器对特定的文档能解析的语言。RAML是基于YAML,符合1.2版本规范,能帮助设计RESTful API和鼓励对API的发掘和重用,依靠标准和最佳实践从而编写更高质量的API。

这些由MuleSoft开发的基于RAML的Web工具分别是:

API Designer:一个专门用于创建和分享API标准的web编辑器。它能提示在什么地方应该使用什么元素以及指出创建的RAML文档中的错误。下面的代码片断中,有一个books的API,其中有get方法,它返回同一个作者编写的所有书籍,而{booksId}部分有一个方法用于获得指定的书本并且delete方法用于从集合中删除书本。

image

从上面的代码片断可以看到,API定义能充分利用用于定义更复杂资源的模式。同时,位于编辑器底部列出了方法、参数、资源和其他在API定义过程中需要的元素。

API Console:用于图形化显示和评估创建的API,勾画出文档的结构和模型。下图显示了针对上面的例子所定义的API对应的控制台的样子,其中包括的books的try区域对于测试API调用特别有帮助:

image

API Notebook:一个用于测试API的Javascript控制台,它本身是和其他的API一起组合而成。它能生成用RAML描述的API用户客户端并可以开始使用它们。

RAML的开发是多人组成的工作团队,其中包括MuleSoft公司的CTO Sarid、Intuit公司的首席架构师Ivan Lazarov、PayPal的用户界面工程高级总监Bill Scott、AngularJS项目的发起人Mi?ko Hevery、Programmable Web & API项目发起人John Musser、Box公司的高级产品平台经理和在退伍军人事务部的总统创新研究项目(参考:http://en.wikipedia.org/wiki/Presidential_Innovation_Fellows)研究员Kin Lane。针对该工作团队和他们的计划,Sarid告诉InfoQ:

RAML目前还是处于早期阶段,我们要确保它的发展能有效地解决当今API设计和描述的迫切需要,并且没有陷入过于沉重的正式治理困境。为此,我们已经成立了一个志同道合的工作组,其成员都是来自在API方面有重大贡献的业界领先企业,这个工作组与来自社区的投入将带动RAML的发展。工作组的成员名单可以在raml.org网站上找到。随着时间的推移,我们会调整成员,以保持组织的活跃,能让其受益于各种各样的观点同时也能精简以保持灵活,专注于目标。我们邀请社区人士参与这样一个开放的,关注长期战略目标及基于现实世界的讨论。

关于RAML的未来,Sarid补充说道:

我们认为,RAML已经解决了许多实际的RESTful API提供者和消费者当前所面临的问题,但绝不是所有。例如,我们还没有想通如何捕获如请求域中的输入参数和在响应BODY中输出数据之间的依赖 ―― 或者至少如何这样用一个整洁的、强大的和与RAML设计目标相一致的方式直观呈现。目前对于基于JSON的API我们也并不感到满意 ,因为刚仅是让body部分以JSON schema呈现;它们并没被更多的XML schema所采用,并且它们可能还不能满足RAML 社区的其他一些要求。摆在我们面前并不清晰的是一个更大的问题,是REST设计上的限制,特别是超媒体。如果我们单单限制RAML在RESTful API方面,那么它则会 ,1 )不会应用到几乎任何现有的API ,以及2)目前对大多数API使用者并不可行。因此,我们从REST的API的基本部分着手 ―― 资源、方法、参数和不需要超媒体的body -- 并将从那里演变。

RAML目前的版本是0.8,完整的规范定义通过https://github.com/raml-org/raml-spec下载。同时,以CoffeeScript编写的RAML parser已经发布。

查看英文原文:MuleSoft Open Sources RAML Tools for Designing RESTful APIs

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT