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

近日,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方法用于从集合中删除书本。

MuleSoft开源用于设计RESTful APIs的工具RAML Tools_第1张图片

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

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

MuleSoft开源用于设计RESTful APIs的工具RAML Tools_第2张图片

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

你可能感兴趣的:(MuleSoft开源用于设计RESTful APIs的工具RAML Tools)