【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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:4310313
用户头像

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

关注

评论

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

一个草根的日常杂碎(9月22日)

刘新吾

生活 随笔 记录

架构师训练营 1 期第 2 周:框架设计 - 作业

piercebn

极客大学架构师训练营

网站日志分析最完整实践

MySQL从删库到跑路

微前端qiankun从搭建到部署的实践

fengxianqi

大前端 微应用

时空碰撞优化系列·二

誓约·追光者

hive Sparksql 计算效率 优化

高并发下为什么更喜欢进程内缓存

架构师修行之路

缓存 架构设计

LeetCode题解:145. 二叉树的后序遍历,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

架构师训练营 - 第 2 周学习总结(1 期)

阿甘

第7周作业

Vincent

极客时间 极客大学

第7周的总结

Vincent

极客时间 极客大学

oeasy 教您玩转 linux 010400 总结 summary

o

深度解析物联网设备的区块链技术

CECBC

区块链 智能合约 物联网

分布式高并发下Actor模型如此优秀

架构师修行之路

系统设计 reactor 高并发

添加字幕哪个视频剪辑软件比较简单?

奈奈的杂社

视频创作 视频剪辑 视频后期 自媒体 后期字幕

架构师训练营第 1 期 第 1 周作业

李循律

c++杂谈-1

菜鸟小sailor 🐕

c++

Spring系列之新注解配置+Spring集成junit+注解注入

Java spring 微服务 架构师

一夜爆火,只因阿里内部作为参考的SpringBoot巅峰之作git开源

小Q

Java 架构 面试 微服务 springboot

看动画学算法之:排序-count排序

程序那些事

动画 看动画学算法 看动画学数据结构 count排序

响应式编程到底是什么?

博文视点Broadview

Java 响应式 响应式编程 reactor 并发

“大数据+区块链”的智慧城市建设!

CECBC

区块链 大数据

众盟科技2020智能化白皮书:穿越新商业周期,读懂商业智能化的真义

脑极体

判断一个请求是否是Ajax异步请求

麦洛

ajax

架构师训练营 - 第 2 周课后作业(1 期)

阿甘

Redis 发布订阅,小功能大用处,真没那么废材!

楼下小黑哥

Java redis spring

救人于无形的“环境智能”,到底是一种什么智能?

脑极体

船长梁晓玲的猎鹰号真的能赚钱嘛?不分析不知道……

成周

心理学 船长梁晓玲 诈骗

golang 表格编程降低圈复杂度

猴子胖胖

表格开发 Go 语言

时空碰撞优化系列·一

誓约·追光者

hive 数据分析 Sparksql 计算效率 优化

甲方日常 20

句子

工作 随笔杂谈 日常 Java 25 周年

架构师训练营第 1 期 -week2

习习

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