@conference {restalk:2016:europlop,
	title = {A Pattern Language for RESTful Conversations},
	booktitle = {Proceedings of the 21st European Conference on Pattern Languages of Programs (EuroPLoP)},
	year = {2016},
	month = {July},
	pages = {4:1{\textendash}4:22},
	publisher = {ACM},
	organization = {ACM},
	address = {Kloster Irsee, Germany},
	abstract = {As a good user interface design is important for the success of an app, so is a good API for the success of a Web service. Within the RESTful Web services community there is a need for a systematic approach in knowledge sharing, for which patterns are particularly suitable. Using a RESTful service to achieve a certain goal often requires multiple client-server interactions, i.e., to have a conversation. While patterns of such RESTful conversations can be uncovered from existing APIs{\textquoteright} usage scenarios, or the service engineering literature, they have never been gathered in a pattern language, nor properly visualized with a Domain Specific Modeling Language (DSML). These patterns provide valuable input for API designers, as well as API consumers, by establishing a common vocabulary to describe recurring conversations. To do so, this paper uses RESTalk, a DSML, to model the basic RESTful conversation patterns structured around the life cycle of a resource (create, discover, read, edit, delete, protect) by showing the corresponding sequences of HTTP request-response interactions. We show how the resulting pattern language can be applied to individual resources, or also collections of resources.},
	keywords = {conversation composition, conversation patterns, pattern language, RESTalk, RESTful conversation, RESTful web services},
	isbn = {978-1-4503-4074-8},
	doi = {10.1145/3011784.3011788},
	url = {http://doi.acm.org/10.1145/3011784.3011788},
	author = {Cesare Pautasso and Ana Ivanchikj and Silvia Schreier}
}
