Prof. Dr. Cesare Pautasso

Interface Quality Patterns --- Crafting and Consuming Message-Based Remote APIs

Mirko Stocker, Olaf Zimmermann, Daniel Lübke, Uwe Zdun, Cesare Pautasso

23rd European Conference on Pattern Languages of Programs (EuroPLoP), Kloster Irsee, Germany

July 2018

Abstract

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.

Download

Citation

Bibtex

@inproceedings{2018:irp:europlop,
	author = {Mirko Stocker, Olaf Zimmermann, Daniel L\"ubke, Uwe Zdun, Cesare Pautasso},
	title = {Interface Quality Patterns --- Crafting and Consuming Message-Based Remote APIs},
	booktitle = {23rd European Conference on Pattern Languages of Programs (EuroPLoP)},
	year = {2018},
	month = {July},
	day = {6},
	publisher = {ACM},
	address = {Kloster Irsee, Germany},
	abstract = {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. },
	keywords = {microservices, api, quality, patterns}
}