写点什么

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

  • 2013-11-09
  • 本文字数:1511 字

    阅读完需:约 5 分钟

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

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

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

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

2013-11-09 11:4310455
用户头像

发布了 81 篇内容, 共 24.3 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

密码学系列之:内容嗅探

程序那些事

加密解密 密码学 程序那些事 内容嗅探

寻找被遗忘的勇气(十)

Changing Lin

3月日更

Elasticsearch 定制 Dynamic Mapping 策略

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

垃圾代码和优质代码的区别?

xcbeyond

Java 优化代码 3月日更

B端产品经理自我认知

lenka

3月日更

Webpack 基石 tapable 揭秘

vivo互联网技术

大前端 webpack 流程管理 tapable

二十张图让你一分钟全面学习数仓建设之路

初学大数据

大数据 数据仓库

区块链赋能农产品溯源,农产品质量安全追溯

13530558032

容器 & 服务:Kubernetes构件及Deployment操作

程序员架构进阶

Docker Kubernetes 容器 28天写作 3月日更

RabbitMQ集群简介

Kylin

读书笔记 RabbitMQ 消息队列 3月日更 集群简介

(28DW-S8-Day18) 可插拔式知识

mtfelix

28天写作

带你轻松理解数据结构之Map

蛙人

JavaScript 大前端

智慧组工党建系统-数字赋能组织工作

13530558032

一个PHPer的Golang之路

万俊峰Kevin

php 微服务 Go 语言

CloudQuery v1.3.4 版本更新

BinTools图尔兹

oracle 运维 编辑器 sql 数据库管理工具

Python 关键字

HoneyMoose

Spring Boot工程结构

韩斌

Spring Boot

成为你向往的那只独角兽 - 《独角兽项目》出版在即

京东科技开发者

DevOps

波场环球系统开发|波场环球软件APP开发

系统开发

常见 git 需求整理(持续更新中)

blueju

git 大前端 工具 npm

算法攻关 - 重建二叉树 (O(n))_0105

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 重建二叉树

翻云覆雨——前景理论之隔离效应

Justin

心理学 28天写作 游戏设计

《精通比特币》学习笔记(第六章)

棉花糖

区块链 学习 3月日更

RPA助力证券行业高质量发展

Jason Tien

微服务 RPA 金融科技 证券 自动化平台

熬夜重构了IDEA插件Toolkit(整合程序员常用的工具箱),更加便捷

Silently9527

Java 程序员 idea插件

正则表达式.05 - 匹配模式

insight

正则表达式 3月日更

DDR4看这一篇就够了

Kevin Z

手写的第一个 Java 应用程序,执行的时候发生了什么?

白色蜗牛

Java

Markdown中的图标为什么不是图片却可以以图片方式显示

happlyfox

28天写作 3月日更

第9周课后练习-性能优化三

潘涛

架构师训练营 4 期

redis工作原理(下)

Sakura

28天写作 3月日更 21天挑战

MuleSoft开源用于设计RESTful APIs的工具RAML Tools_REST_Abel Avram_InfoQ精选文章