The REST (REpresentational State Transfer) architectural style defines a set of interface constraints that aim at retaining interoperability between systems that may evolve independently of each other. However, REST developers are currently lacking modeling tools that would help them apply interface constraints to legacy APIs when exposing them as REST-like services. We believe that REST-aware tools would implement three major steps: analyzing a legacy API, abstracting it to a canonical form with constraints in place, and generating adapter code for the abstraction. In this paper we present a model-based approach to the abstraction step of such a tool. First we discuss the role of fully profiled UML models in representing API operations. Using those models, we focus on describing how to transform an API model into a canonical interface model. As a concrete part of our work we specify how UML models are processed during these transformations. To demonstrate the applicability of our approach, we present a real world API example.
['Markku Laitkorpi', 'Johannes Koskinen', 'Tarja Systä']
A UML-based Approach for Abstracting Application Interfaces to REST-like Services