Mirko Stocker, Olaf Zimmermann, Daniel Lübke, Uwe Zdun, Cesare Pautasso
23rd European Conference on Pattern Languages of Programs (EuroPLoP), Kloster Irsee, Germany
The design and evolution of Application Programming Interfaces (APIs) in microservices architectures is challenging. General design issues in integration and programming have been covered in great detail in many pattern languages since the beginnings of the patterns movement, and service-oriented infrastructure design patterns have also been published in the last decade. However, the interface representations (i.e., the content of message payloads) have received less attention. We presented five structural representation patterns in our previous work; in this paper we continue our coverage of the API design space and propose five interface quality patterns that deal with the observable aspects of quality-attribute-driven interface design for efficiency, security, and manageability: An API Key allows API providers to identify clients. Providers may offer rich data contracts in their responses, which not all consumers might need. A Wish List allows the client to request only the attributes in a response data set that it is interested in. If a client makes many API calls, the provider can employ a Rate Limit and bill clients according to a specified Rate Plan . A provider has to provide a high-quality service while at the same time having to use its available resources economically. The resulting compromise is expressed in a provider's Service Level Agreement.
- Mirko Stocker, Olaf Zimmermann, Daniel Lübke, Uwe Zdun, Cesare Pautasso, Interface Quality Patterns --- Crafting and Consuming Message-Based Remote APIs, Proc. of the 23rd European Conference on Pattern Languages of Programs (EuroPLoP), Kloster Irsee, Germany, July 2018