Within the past year, ProgrammableWeb has published several articles featuring leading API platforms that have added RAML support; including: SOA Software API Management platform, CA Technologies API Developer Portal, and API monitoring service API Science. Recently, two standalone RAML API mocking tools have surfaced on GitHub; LocalAPI and RAML Server.
ProgrammableWeb reached out to Arnold Sikorski, IT manager and software architect at IsaaCloud, who provided additional insight into the LocalAPI application. Sikorski explained that IsaaCloud "wanted to develop an application which could help and expand the family of apps using the RAML standard. We chose RAML because our developers had already had some experience with it - a different API description language would entail introducing new tools. RAML allows for describing REST interfaces in a clear and simple way, which was what we looked for in the first place."
Sikorski went on to explain that "the architecture of the apps we develop is based on a distributed model using microservices. Each microservice is developed by a separate team, which very often results in the lack of coordination in terms of progress achieved by individual teams. It became necessary to mock communication resources and that's where LocalAPI helps us out. It is able to emulate practically 100% of implementation teams' needs."
Sikorski also told ProgrammableWeb that "considering the architecture of our system and work organization mentioned above, it is not always possible to synchronize workflows of individual dev teams. Let's suppose that team A works much faster than team B. This causes some disproportions implementation-wise and disrupts workflow - team A has to wait for team B to finish their tasks. Thanks to LocalAPI, we've been able to get rid of such situations almost entirely."
RAML Server is an application created by Franco Arolfo, software engineer at MuleSoft, which generates a mock API based on a RAML specification. The RAML Server application works with JSON Server, and RAML Mocker is used to read the JSON schemas and generate the data contained in the responses.
ProgrammableWeb reached out to Franco Arolfo who explained the reasoning behind creating the RAML Server application. "When we develop web applications we usually split the job into UI tasks and backend tasks, but first we agree on an API that the backend will expose and the UI will consume, specified with RAML," said Arolfo. "So the issue that arose was that the UI devs didn't have the API up and running while they were developing. Because the API itself was still in progress by the backend devs, they needed to figure out a way for mocking the services until they were ready." The RAML Server application solves this problem by allowing a mock API to be generated by simply writing a RAML specification.
Arolfo told ProgrammableWeb that he is currently working on improving RAML Server including the addition of "support for a full REST API experience using all HTTP methods; not only GET examples or POST them (which is available today), but also to be able to DELETE, PUT or PATCH those resources." Support for a full REST API experience will be added to RAML Server sometime in the future. It should be noted that RAML Server is an open source project and anyone that would like to help is welcomed.
API description languages like RAML are being used not only for creating well-designed, human and machine-readable APIs, but also for generating interactive API documentation, API monitors, mock APIs, and much more. It will be very interesting to see the kinds of tools that developers create based on RAML in the future.
Disclaimer: MuleSoft is the parent company of ProgrammableWeb.