RAML seems to be yet another one of the buzzwords floating around the IT space as of late. Many know that it has to do with APIs and connectivity, but they aren't positive what it is exactly or where to start. In this blog, we give an overview of RAML and its uses.
RESTful API Modeling Language (better known as RAML) is a YAML-based modeling language to describe RESTful APIs. It provides a structured and clear format to describe the API. According to RAML's website, it "makes it easy to manage the whole API lifecycle."
RAML can be used in a multitude of ways: to implement interactive PAI consoles, generate documentation, describing an API you are planning to build, and more. Despite the name, RAML can describe APIs that do not follow all of the REST rules (hence why it's referred to as "practically RESTful").
RESTful (REpresentational State Transfer) APIs -- also known as RESTful web services -- are formal languages designed to provide a structured description of a RESTful web API capable of being consumed by both human and machine. They utilize HTTP requests to GET, PUT, POST, and DELETE data.
To dive in a bit deeper, REST is a style of architecture based on a set of principles that describe how networked resources are defined and addressed. It advocates that web applications should use HTTP as it was originally envisioned. To learn more about what REST is, you can read more about it here.
A benefit of RAML is the library of tools that are offered. They can range anywhere from API document generation, to converting APIs developed in other languages over to RAML (or even just from one specification to another), or a tool that will help parse, validate, and modify RAML types. Some of the tools available:
Want to learn more about the types of tools that you can find and use for RAML? Visit the Projects Library here.
There is a lot of debate surrounding which language is best for developing or describing APIs. Some of the other API languages that are available:
In a previous blog post, we discussed the difference between RAML and Swagger as development platforms. You can find out more about their differences -- and similarities -- here.