RAML is supported by the developer community with a long list of tools and projects that address different API needs. These tools address different aspects of the API development lifecycle—from designing the API spec to sharing it with the broader community. New tools are also evolving to address newer requirements and languages. Some of the languages supported at the time of this writing are Java, JavaScript, .NET, Ruby, Node.js, Python, Go, and Haskell. This section briefly previews the most commonly used RAML tools.
• API Workbench is a tool by MuleSoft that provides a full-featured integrated development environment (IDE) that design, build, test, document, and share RESTful APIs. Using API Workbench, you can create RESTful APIs using a simple design-first approach based on RAML specifications. It supports both RAML 0.8 and
RAML 1.0 versions of the specifications. This tool is based on Atom code editor developed by GitHub. The following are some of the main features of API Workbench.
• An IDE that supports autocomplete, advanced search, live debugging, and symbol based navigation
• Dynamic generation of API Mocking Service and API Console
• Wizard-driven creation of API definitions based on RAML specifications
• Automatic validation of RAML-based API definitions • Built-in support for integration with Git for source control
and versioning
• An integrated scripting engine and tooling for API testing and documentation
• API Designer is a tool from MuleSoft that allows a user to see real-time post-processing of their API definition. It provides three panels with areas to organize RAML files and folders, displays the contents of the document, and offers an interactive text editor. The text editor provides features such as autocomplete, export, and contextual tag lists. It also saves the API definition. For more information, please refer to https://github.com/mulesoft/api- designer.
• Restlet Studio provides a lightweight integrated development environment that can help accelerate API design. Built using Angular.js, it provides a web-based UI for API design. The following are some of the main features for Restlet Studio:
• Visual web-based editor to define and edit API definitions for endpoint, resources, methods, and so forth.
• The ability to group resources and representations into sections with scrollable a navigation panel helps extend support for even the most complex API definition
• A built-in language translator switches between Swagger and RAML definitions
• Generates server skeleton code using a built-in code generator service based on APISpark and Swagger
• Generates client SDKs using a built-in code generator service based on APISpark and Swagger.
• For more information on Restlet Studio, please refer to
• API Notebook is another RAML tool by MuleSoft. It helps with live testing and exploring APIs. An API RAML definition can be imported into Notebook to create a client for the API, send requests, and view responses. Notebook’s autocomplete feature explores the API. Once a RAML definition for the API has been imported, the method definitions will appear in the tool-tip hints. The path segments of the API resource, separated by slashes (/), become nested JavaScript objects; for example, /my/myresource becomes {clientName}.my.myresource.
• RAML for JAX-RS provides a set of tools that generate a Java + JAX-RS-based application from a RAML API definition. It also provides roundtrip support by doing the reverse to generate a RAML API definition from an existing Java + JAX-RS definition. • Abao provides a REST API testing tool for APIs defined using
RAML. It tests the RAML definition for the API against the back- end implementation. This tool can be integrated with continuous integration (CI) tools such as Jenkins to test API documentation and keep it up-to-date. It uses the Mocha framework to test the validity of the API response. The following are some of its features: • Validates the API endpoint definition
• Validates that each URL parameter defined in the RAML API spec is supported in the back-end service
• Validates that each HTTP request and response header parameter defined in the RAML API spec is supported in the back-end service
• Validates that the JSON schema for the request and response payload meets RAML specifications
• RAML Tools for .NET provides a Visual Studio extension for RAML-based APIs. It allows you to easily integrate and consume APIs defined using RAML and to create a new ASP .NET REST API implementation from a RAML definition using a design-first approach.
There are many other tools available as RAML projects that address the various needs of the developer community building and consuming REST APIs from a RAML definition. Based on the functionality, these tools can be primarily categorized by design, prototype, build, frameworks, test, document, share, parser, and converters. Most of the design tools provide a visual interface or plugins that can be used with other visual editors to design the RAML definition for the API. The prototype tools can be used to mockup response for APIs defined using RAML. They can test the API interface and create stubs as a replacement for the actual implementation for testing purposes. The build tools and frameworks generate the client SDK and server skeletons based on the RAML definition of various languages. This promotes the design-first approach for API development.
These tools test API documentation and implementation. They can generate test cases for APIs based on the RAML definition for the API. They validate the RAML definition against the actual implementation and thus keep the two in sync. The documentation tools create API documents in various formats; graphical API consoles, HTML, wikis, PDFs, and other formats can be shared with API consumers. The parser tools are libraries for different languages, which parse the RAML definition of the API. The converters convert the RAML to other API specification formats, such as Swagger.