UML based Model Driven REST API Development
In the last few years we have witnessed the expansion of REST APIs as a method to implement machineto machine interactions in open distributed systems. Recently REST APIs can also be found in several B2B and enterprise scenarios that were previously reserved to alternative technologies such as SOAP based Web Services. Despite that, the development of REST based solutions has remained mostly inspired by agile approaches with no or limited explicit modeling artifacts produced during the development process. This clashes with software development methods in which modeling artifacts are expected to be available for all developed software. Another problem is related to the resource based nature of these APIs that miss standardized methods to discover and understand their capabilities akin to what object oriented interfaces can do for objects and services. In this paper we propose a model driven approach to REST API development; this approach is composed by two main steps: (i) UML modeling of the API using specific profiles and (ii) a model transformation that exploits RAML, a recent RESTful API modeling language, as an intermediate notation that can be used to automatically produce documentation and code for various languages/platforms.
WEBIST