RESTful API Modeling Language (RAML) is a
YAML
YAML ( and ) (''see '') is a human-readable data-serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Ext ...
-based language for describing static
API
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
s (but not REST APIs).
It provides all the information necessary to describe APIs on the level 2 of the
Richardson Maturity Model. Although designed with RESTful APIs in mind, RAML is not capable of describing APIs that not obey all constraints of REST. It encourages reuse, enables discovery and pattern-sharing and aims for merit-based emergence of best practices.
History
RAML was first proposed in 2013. The initial RAML specification was authored by Uri Sarid, Emiliano Lesende, Santiago Vacas and Damian Martinez, and garnered support from technology leaders like MuleSoft, AngularJS, Intuit, Box, PayPal, Programmable Web and API Web Science, Kin Lane, SOA Software, and Cisco. Development is managed by the RAML Workgroup. The current workgroup signatories include technology leaders from
MuleSoft
MuleSoft, LLC. is a software company headquartered in San Francisco, California, that provides integration software for connecting applications, data and devices. Started in 2006, the company's Anypoint Platform of integration products is designe ...
(Uri Sarid, CTO),
AngularJS
AngularJS is a discontinued free and open-source JavaScript-based web framework for developing single-page applications. It was maintained mainly by Google and a community of individuals and corporations. It aimed to simplify both the developm ...
(Misko Hevery, Project Founder),
Intuit
Intuit Inc. is an American business software company that specializes in financial software. The company is headquartered in Mountain View, California, and the CEO is Sasan Goodarzi. Intuit's products include the tax preparation application Tu ...
(Ivan Lazarov, Chief Enterprise Architect),
Airware
Airware (incorporated as Unmanned Innovation, Inc.) was an American venture-funded startup that provided commercial unmanned aerial vehicles for enterprises. The company ceased operations on September 14, 2018.
Airware was founded in 2011 in Ne ...
(Peter Rexer, Director of Product - Developer Platform),
Programmable Web
ProgrammableWeb is an information and news source about the Web as a programmable platform. It is a subsidiary of MuleSoft and has offices in San Francisco, CA. The website publishes a repository of web APIs, mashups, and applications, and has do ...
and
API Science (John Musser, Founder),
SOA Software (Tony Gullotta, Director of Development),
Cisco
Cisco Systems, Inc., commonly known as Cisco, is an American-based multinational corporation, multinational digital communications technology conglomerate (company), conglomerate corporation headquartered in San Jose, California. Cisco develo ...
(Jaideep Subedar, Senior Manager, Product Management - Application Integration Solutions Group),
VMware
VMware, Inc. is an American cloud computing and virtualization technology company with headquarters in Palo Alto, California. VMware was the first commercially successful company to virtualize the x86 architecture.
VMware's desktop software ru ...
(Kevin Duffey, Senior MTS Engineer),
Akamai Technologies
Akamai Technologies, Inc. is an American content delivery networkJ. Dilley, B. Maggs, J. Parikh, H. Prokop, R. Sitaraman, and B. Weihl. (CDN), cybersecurity, and cloud service company, providing web and Internet security services. Akamai's Int ...
(Rob Daigneau, Director of Architecture for Akamai's OPEN API Platform) and
Restlet (Jerome Louvel, CTO and Founder). RAML is a trademark of MuleSoft.
Very few existing APIs meet the precise criteria to be classified as RESTful APIs. Consequently, like most API initiatives in the 2010s, RAML has initially focussed on the basics of APIs including resources, methods, parameters, and response bodies that need not be hypermedia.
There are a number of reasons why RAML has broken out from being a proprietary vendor language and has proven interesting to the broader API community:
* RAML has been open-sourced along with tools and parsers for common languages. The development of RAML will be overseen by a steering committee of API and UX practitioners, and there is an emerging ecosystem of third-party tools being developed around RAML
* MuleSoft originally started using Swagger (now
OpenAPI Specification
The OpenAPI Specification, previously known as the Swagger Specification, is a specification for a machine-readable interface definition language for describing, producing, consuming and visualizing RESTful web services. Previously part of the Sw ...
), but decided it was best suited to documenting an existing API, not for designing an API from scratch. RAML evolved out of the need to support up-front API design in a succinct, human-centric language
* API descriptions are often verbose and repetitive, which can make them difficult to understand and use, and slow adoption of the APIs. RAML has introduced language features that support structured files and inheritance that address cross-cutting concerns
A new organization, under the sponsorship of the
Linux Foundation
The Linux Foundation (LF) is a non-profit technology consortium founded in 2000 as a merger between Open Source Development Labs and the Free Standards Group to standardize Linux, support its growth, and promote its commercial adoption. Addi ...
, called the Open API Initiative was set up in 2015 to standardize the description of HTTP APIs. A number of companies including
SmartBear,
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
,
IBM and
Microsoft
Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
were founding members. SmartBear donated the Swagger specification to the new group. RAML and API Blueprint are also under consideration by the group.
Example
This is an example RAML file. As with YAML, indentation shows nesting.
#%RAML 0.8
title: World Music API
baseUri: http://example.api.com/
version: v1
traits:
- paged:
queryParameters:
pages:
description: The number of pages to return
type: number
- secured: !include http://raml-example.com/secured.yml
/songs:
is: paged, secured get:
queryParameters:
genre:
description: filter the songs by genre
post:
/:
get:
responses:
200:
body:
application/json:
schema: ,
application/xml:
delete:
description: ,
This method will *delete* an **individual song**
Some highlights:
* line 7, 12: defines traits, invoked in multiple places
* line 12: an Include file
* line 13, 14: define a "resource" data type "/songs"; uses previously defined traits
* line 15, 19, 37: defines
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
methods
* line 25, 36:
MIME types.
API gateways supporting RAML
*
Apigee
*
MuleSoft
MuleSoft, LLC. is a software company headquartered in San Francisco, California, that provides integration software for connecting applications, data and devices. Started in 2006, the company's Anypoint Platform of integration products is designe ...
*
AWS API Gateway
Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon that provides on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide dis ...
by
AWS
Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon that provides on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide di ...
(throug
AWS API Gateway Importer
*
Akana
Akana is a provider of computer software products for application programming interface (API) management. The company was founded as Digital Evolution and was later known as SOA Software. In November 2016, Akana was acquired by Rogue Wave Softwar ...
*
Restlet
Furthermore, you can convert your RAML specification to either
OpenAPI or
API Blueprint
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
usin
APIMATIC thus enabling you to use further API gateways.
See also
*
OpenAPI Specification
The OpenAPI Specification, previously known as the Swagger Specification, is a specification for a machine-readable interface definition language for describing, producing, consuming and visualizing RESTful web services. Previously part of the Sw ...
*
MuleSoft
MuleSoft, LLC. is a software company headquartered in San Francisco, California, that provides integration software for connecting applications, data and devices. Started in 2006, the company's Anypoint Platform of integration products is designe ...
*
Representational State Transfer
*
YAML
YAML ( and ) (''see '') is a human-readable data-serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Ext ...
*
Java API for RESTful Web Services
Jakarta RESTful Web Services, (JAX-RS; formerly Java API for RESTful Web Services) is a Jakarta EE API specification that provides support in creating web services according to the Representational State Transfer (REST) architectural pattern ...
*
SoapUI
SoapUI is an open-source web service testing application for Simple Object Access Protocol (SOAP) and representational state transfers (REST). Its functionality covers web service inspection, invoking, development, simulation and mocking, fu ...
*
SOAtest
Parasoft SOAtest is a testing and analysis tool suite for testing and validating APIs and API-driven applications (e.g., cloud, mobile apps, SOA). Basic testing functionality include functional unit testing, integration testing, regression test ...
*
Markdown
Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber and Aaron Swartz created Markdown in 2004 as a markup language that is appealing to human readers in its source code form. Markdown i ...
Alternative HTTP API Modeling Languages
*
OpenAPI Specification
The OpenAPI Specification, previously known as the Swagger Specification, is a specification for a machine-readable interface definition language for describing, producing, consuming and visualizing RESTful web services. Previously part of the Sw ...
API Blueprint*
WADL
Notes
References
{{Reflist
External links
RAML official websiteRAML Repositories on GithubRAML Open Specification and Tools Released to Aid in API DesignMuleSoft founder Ross Mason on avoiding API armageddonSpring WebService to RAML maven plugin
Application programming interfaces
Markup languages