REST建模语言RAML介绍

RAML是什么?

RAML是一种简洁的RESTful API描述性语言,它基于 YAML和JSON这样的公开标准构建。通过RAML定义,可以生成客户端调用代码和服务端代码结构,创建API说明文档。

我们知道Web Service有相应的WSDL来描述它相应的Schema,WSDL就相当于对当前的服务做了一个描述,Client端可以据此生成相应的Proxy代码, 因此WSDL可以帮助Client更容易的消费服务。

对于RESTful API,却没有相应的“REST WSDL”,在这种情况下,RAML应运而生,它可以对我们的API做完整的描述,不管是对人或者是机器,都能以相对友好的方式使用。

RAML能帮助我们做什么?

RAML可以帮助你组织:

1.基本信息。描述RESTful API的关键点,比如名字、标题、路径等。

2.用户文档。描述技术支持性文档帮助用户更方便的消费API,通过文档生成器创建PDF或者HTML。

3.资源。描述如何规范RESTful资源,资源的方法和Schema,以及资源之间的交互。

怎样使用RAML设计API?

在线设计器:http://www.apihub.com/raml/api-designer

目前已经支持关键字自动提示,自动完成,语法错误检测,实时预览,功能相对完善,程序员使用起来很容易上手。

RAML设计器和解析器都是github的开源项目,我们可以将他们集成到自己的产品中。

前文看到的文档就是利用RAML解析器生成的,它是一个压缩后大约240k的Javascript文件,可以加载到浏览器或者Node.js中运行,利用解析器可以Load指定的RAML文件生成HTML文档。

RAML相关的工具和资源在哪里?

 

官方网站:http://raml.org

规范文档:http://raml.org/spec.html

设计器:https://github.com/mulesoft/api-designer

解析器:https://github.com/raml-org/raml-js-parser

时间: 2024-08-03 10:46:36

REST建模语言RAML介绍的相关文章

统一建模语言UML整理之开篇

引言: 这段时间将致力于写UML方面的博客,由于个人能力的有限,如果博客中出现错误的地方还请广大博友批评指正.为了更好地了解一个过程或者事物,人们通常根据所研究对象的某些特征(形状.结构.或行为等)建立相关的模型(Model).模型是从一个特定的视点对系统进行的抽象,它可以是实物模型,例如建筑模型,教学模型.玩具等,也可以是抽象数字或图示模型,例如数学公式或图形等.模型建立的目的不是复制真实的原物,而是帮助人们更好的理解复杂的事物本质,反应过程或事物内部各种因素执念的相互关系.下面就让我们进入U

Linux平台上SQLite数据库教程(二)——C语言API介绍

Linux平台上SQLite数据库教程(二)--C语言API介绍 前言:本文将介绍几个基本的SQLite3数据库的C语言API接口,主要用到两个文件:sqlite3.c.sqlite3.h.源码地址:https://github.com/AnSwErYWJ/SQLite. 打开数据库 1.原型: int sqlite3_open( const char* filename, /* 数据库文件名, 必须为 UTF-8 格式 */ sqlite3** ppDB /* 输出: SQLite 数据库句柄

Atitit.软件的建模种类and 建模语言选型and UML???

Atitit.软件的建模种类and  建模语言选型and UML??? 1. 4大的建模种类:ui建模,业务流程建模 , 业务对象建模, 数据库建模 1 2. 文本还是图片化(推荐)的建模 1 3. 通常建模语言UML,psodo,流程图.. 1 4. 静态结构+动态语义 1 5. 建模工具..dw/ps, jbpm/reg engine  , 1 6. ui建模语言html,css 1 7. Ui层次流程建模js?? 1 8. 业务对象建模语言java,uml 1 8.1. 显示类结构outl

UML建模语言

UML建模语言 UML(unified modeling language)  俗称统一建模语言,也叫建模工具. 它是一种用来对真实世界物体进行建模的标准标记,这个建模的过程是开发面向对象设计方法的第一步.它的标记起源于并统一于三种面向对象设计和分析方法的标记:    Grady Booch的描述对象集合和它们之间的关系的方法    James Rumbaugh的对象建模技术(OMT)    Ivar Jacobson的包括用例方法的方式 其中UML定义了5类,10种模型图 五种类图定义 用例图

Cocos2d-x 脚本语言Lua介绍

Cocos2d-x 脚本语言Lua介绍 本篇博客记录Lua学习.学习来自eoe论坛,Lua语言开发Cocos2d-x游戏入门视频教程,猛戳下面地址: http://www.eoeandroid.com/thread-320602-1-1.html 由于Lua语言小巧.简单.能与C/C++无缝结合.运行高速.易于更新等长处,越来越多的公司在使用Lua语言进行游戏开发,而非常多Cocos2d-xproject师的招聘要求上直接写明要求会Lua语言.我了解到一家公司在开发Cocos2d-x游戏时游戏逻

OO第三单元总结——java建模语言

一.JML语言的理论基础 面向对象分析和设计的原则之一就是应当尽可能地把过程设想往后推.我们大多数人只在实现方法之前遵守这一规则.一旦确定了类及其接口并该开始实现方法时,我们就转向了过程设想. Java 建模语言(JML)将注释添加到 Java 代码中,这样我们就可以确定方法所执行的内容,而不必说明它们如何做到这一点.有了 JML,我们就可以描述方法预期的功能,无需考虑实现.通过这种方法,JML 将延迟过程设想的面向对象原则扩展到了方法设计阶段. 二.JML应用工具链 openJML可以检查规格

软件建模语言

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 软件建模语言: 软件建模需要交流,所

UML(Unified Modeling Language)统一建模语言

什么是模型 模型是对现实的简化 模型是提供系统的蓝图,模型可是包括详细计划.也可是是从更高程度考虑系统的总体计划,每个系统可以从不同的方面用不通过的模型来描述.因而每个模型都是在语义上闭合的抽象系统.模型可以是结构性的,强调系统的组织.也可是是行为性的,强调系统的动态方面 举例:售楼中心里面的楼盘蓝图 为什么建模 建模是为了能够更好地理解正在开发的系统 通过建模达到下面的目的1.模型有助于按照实际情况或按照所需的样式对系统进行可视化2.模型能够规约系统的结构或行为3.模型给出了构造系统的模板4.

Scheme语言--简单介绍

一年前事实上有时间看完SICP这本书,后来由于种种原因,一直没有继续再学.由于SICP中使用Scheme确实应用不多.在Java,C++的语言眼里,Scheme确实非常另类.现在MIT已经放弃了使用Scheme作为SICP的教学语言而转向python之际,我在此開始学习这本书与这门语言的学习.SICP主要使用Scheme语言来解决计算机科学中的一些问题.为了督促自己,每天都能学习.积小流而成江海,把自己的学习过程放在这里,以供自己复习. 本系列主要包含两部分Scheme语言层面的问题及SICP中