RESTful API Modeling Language
   HOME

TheInfoList



OR:

RESTful API Modeling Language (RAML) is a
YAML YAML ( ) 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 Extensible Marku ...
-based language for describing static
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
s (but not REST APIs). It provides all the information necessary to describe APIs on the level 2 of the
Richardson Maturity Model The Richardson Maturity Model (RMM) is a maturity model suggested in 2008 by Leonard Richardson which classifies Web APIs based on their adherence and conformity to each of the model's four levels. The aim of the research of the model as stated b ...
. Although designed with RESTful APIs in mind, RAML is not capable of describing APIs that obey all constraints of REST (it cannot describe an API obeying
HATEOAS Hypermedia as the engine of application state (HATEOAS) is a constraint of the REST software architectural style that distinguishes it from other network architectural styles. With HATEOAS, a client interacts with a network application whose appl ...
, in particular). 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, founded in 2006. The company's Anypoint Platform of integration products is designe ...
(Uri Sarid, CTO),
AngularJS AngularJS (also known as Angular 1) 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 si ...
(Misko Hevery, Project Founder),
Intuit Intuit Inc. is an American multinational 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 preparati ...
(Ivan Lazarov, Chief Enterprise Architect), Airware (Peter Rexer, Director of Product - Developer Platform), Programmable Web and API Science (John Musser, Founder),
SOA Software 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 ...
(Tony Gullotta, Director of Development),
Cisco Cisco Systems, Inc. (using the trademark Cisco) is an American multinational digital communications technology conglomerate corporation headquartered in San Jose, California. Cisco develops, manufactures, and sells networking hardware, s ...
(Jaideep Subedar, Senior Manager, Product Management - Application Integration Solutions Group), VMware (Kevin Duffey, Senior MTS Engineer),
Akamai Technologies Akamai Technologies, Inc. is an American company specialized in content delivery networkJ. Dilley, B. Maggs, J. Parikh, H. Prokop, R. Sitaraman, and B. Weihl. (CDN), cybersecurity, DDoS mitigation, and cloud services. It is headquartered in ...
(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 (technical standard), specification for a Machine-readable medium, machine-readable interface definition language for describing, producing, consuming and ...
), 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 organization established in 2000 to support Linux development and open-source software projects. Background The Linux Foundation started as Open Source Development Labs in 2000 to standardize and prom ...
, 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 and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
,
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
and
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
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 HTTP (Hypertext Transfer Protocol) 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, wher ...
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, founded 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. Clients will often use this in combination wi ...
by AWS (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 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 (technical standard), specification for a Machine-readable medium, machine-readable interface definition language for describing, producing, consuming and ...
*
MuleSoft MuleSoft, LLC. is a software company headquartered in San Francisco, California, that provides integration software for connecting applications, data and devices, founded in 2006. The company's Anypoint Platform of integration products is designe ...
*
Representational State Transfer REST (Representational State Transfer) is a software architectural style that was created to describe the design and guide the development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of ...
*
YAML YAML ( ) 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 Extensible Marku ...
* Java API for RESTful Web Services * SoapUI * SOAtest *
Markdown Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber created Markdown in 2004 as an easy-to-read markup language. Markdown is widely used for blogging and instant messaging, and also used ...


Alternative HTTP API Modeling Languages

*
OpenAPI Specification The OpenAPI Specification, previously known as the Swagger Specification, is a Specification (technical standard), specification for a Machine-readable medium, machine-readable interface definition language for describing, producing, consuming and ...

API Blueprint
* WADL


Notes


References


External links


RAML official website

RAML Repositories on Github



RAML Open Specification and Tools Released to Aid in API Design
{{Webarchive, url=https://web.archive.org/web/20140321032847/http://blog.programmableweb.com/2013/10/23/raml-open-specification-and-tools-released-to-aid-in-api-design/ , date=2014-03-21
MuleSoft founder Ross Mason on avoiding API armageddon



Spring WebService to RAML maven plugin
Application programming interfaces Markup languages