@demo {2022:ecsa:expresso,
	title = {ExpressO: From Express.js implementation code to OpenAPI interface descriptions},
	year = {2022},
	month = {September},
	pages = {29{\textendash}44},
	publisher = {Springer},
	abstract = {This tool demo paper brings forward a new CLI tool called ExpressO for developers who need to analyze a Web API implemented using the Express.js framework and automatically extract a specification written in the standard OpenAPI interface description language. The specification includes all of the implemented endpoints along with their response status codes and path and query parameters. Developers can use it to automatically determine whether the interface of a Web API matches its implementation based on the Express.js framework. The tool has been released on the npm component registry as {\textquoteleft}expresso-api{\textquoteright}.

},
	keywords = {API, express.js, OpenAPI},
	doi = {10.1007/978-3-031-36889-9_4},
	author = {Souhaila Serbout and Alessandro Romanelli and Cesare Pautasso}
}
@conference {2021:europlop:api-fragments,
	title = {From OpenAPI Fragments to API Pattern Primitives and Design Smells},
	booktitle = {European Conference on Pattern Languages of Programs (EuroPLoP{\textquoteright}21)},
	year = {2021},
	month = {July},
	publisher = {ACM},
	organization = {ACM},
	address = {Virtual Kloster Irsee, Germany},
	abstract = {In the past few years, the OpenAPI Specification (OAS) has emerged as a standard description language for accurately modeling Web APIs.
Today, thousands of OpenAPI descriptions can be found by mining open source repositories. In this paper, we attempt to exploit these artifacts to extract commonly occurring building blocks used in Web API structures, in order to assist Web API designers in their modelling task. Our work is based on a fragmentation mechanism, that starts from  OpenAPI descriptions of Web APIs to extract their structures, then fragment these structures into smaller blocks. This approach enabled us to extract a large dataset of reoccurring fragments from a collection of 6619 API specifications.  
Such fragments have been found multiple times in the same or across different APIs. We have classified the most reoccurring fragments into four pattern primitives used to expose in the API access to collections of items.  We distinguish for each primitive variants from design smells. This classification is based on the specific combinations of operations associated with the collection items and on an in-depth analysis of their natural language labels and descriptions. The resulting pattern primitives are intended to support designers who would like to introduce one or more collections for a specific class of items in their HTTP-based API.},
	keywords = {API, API fragments, design smells, OpenAPI, patterns},
	doi = {10.1145/3489449.3489998},
	url = {https://zenodo.org/record/5727094$\#$.YZ97mFMo-0o},
	author = {Souhaila Serbout and Cesare Pautasso and Uwe Zdun and Olaf Zimmermann}
}
