@demo {2018:icsoc:demo:restalk, title = {RESTalk Miner: Mining RESTful Conversations, Pattern Discovery and Matching}, year = {2018}, month = {November}, publisher = {Springer}, address = {Hangzhou, Zhejiang, China}, abstract = {REST has become the architectural style of choice for APIs, where clients need to instantiate a potentially lengthy sequence of requests to the server in order to achieve their goal, effectively leading to a RESTful conversation between the client and the server. Mining the logs of such RESTful conversations can facilitate knowledge sharing among API designers regarding design best practices as well as API usage and optimization. In this demo paper, we present the RESTalk Miner, which takes logs from RESTful services as an input and uses RESTalk, a domain specific language, to visualize them. It provides interactive coloring to facilitate graph reading, as well as statistics to compare the relative frequency of conversations performed by different clients. Furthermore, it supports searching for predefined patterns as well as pattern discovery. }, keywords = {conversation patterns, mining, RESTalk, RESTful conversation}, author = {Ana Ivanchikj and Cesare Pautasso} } @article {restalk:2016:jssm, title = {Visual modeling of RESTful conversations with RESTalk}, journal = {Journal of Software \& Systems Modeling}, volume = {17}, year = {2018}, month = {July}, pages = {1031-1051}, abstract = {The cost savings introduced by Web services through code re-use and integration opportunities have motivated many businesses to develop Web APIs, with ever increasing numbers opting for the REST architectural style. RESTful Web APIs are decomposed in multiple resources, which the client can manipulate through HTTP interactions with well defined semantics. Getting the resource in the desired state might require multiple client-server interactions, what we define as a RESTful conversation. RESTful conversations are dynamically guided by hypermedia controls, such as links. Thus, when deciding whether and how to use a given RESTful service, the client might not be aware of all the interactions which are necessary to achieve its goal. This is because existing documentation of RESTful APIs describe the static structure of the interface, exposing low-level HTTP details, while little attention has been given to conceptual, high-level, modeling of the dynamics of RESTful conversations. Low-level HTTP details can be abstracted from during the design phase of the API, or when deciding which API to use. We argue that, in these situations, visual models of the required client-server interactions might increase developers{\textquoteright} efficiency and facilitate their understanding. Thus, to capture all possible interaction sequences in a given RESTful conversation, we propose RESTalk, an extension to the BPMN Choreography diagrams to render them more concise and yet sufficiently expressive in the specific REST domain. We also report on the results obtained from an exploratory survey we have conducted to assess the maturity of the field for a domain specific language, and to obtain feedback for future improvements of RESTalk.}, keywords = {RESTalk, RESTful conversation}, issn = {1619-1366}, doi = {10.1007/s10270-016-0532-2}, url = {http://link.springer.com/article/10.1007/s10270-016-0532-2}, author = {Ana Ivanchikj and Cesare Pautasso and Silvia Schreier} } @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} } @conference {ecsa2015:restcon, title = {Modeling RESTful Conversations with extended BPMN Choreography diagrams}, booktitle = {9th European Conference on Software Architecture (ECSA 2015)}, year = {2015}, month = {September}, publisher = {Springer}, organization = {Springer}, address = {Dubrovnik, Croatia}, abstract = {RESTful Web APIs often make use of multiple basic HTTP interactions to guide clients towards their goal. For example, clients may get redirected towards related resources by means of hypermedia controls such as links. Existing modeling approaches for describing RESTful APIs expose low-level HTTP details that help developers construct individual requests and parse the corresponding responses. However, very little attention has been given to high-level modeling of RESTful conversations, which abstracts the structure of multiple HTTP interactions. To address such issue in this paper we introduce an extension of the notation used in BPMN choreography diagrams. Its purpose is to represent concisely all possible interaction sequences in a given RESTful conversation.}, keywords = {BPMN Choreography, REST, RESTful conversation}, author = {Cesare Pautasso and Ana Ivanchikj and Silvia Schreier} }