Prof. Dr. Cesare Pautasso

To deprecate or to simply drop operations? An empirical study on the evolution of a large OpenAPI collection

Fabio Di Lauro, Souhaila Serbout, Cesare Pautasso

16th European Conference on Software Architecture (ECSA), Prague, Czech Republic, pp. 38-46

September 2022

Abstract

OpenAPI is a language-agnostic standard used to describe Web APIs which supports the explicit deprecation of interface features. To assess how APIs evolve over time and observe how their developers handle the introduction of breaking changes, we performed an empirical study on a dataset composed of more thanone million API operations described using OpenAPI and Swagger format. Our results focus on detecting breaking changes engendered by operations removal and whether and to which extent deprecation is used to warn clients and developers about dependencies they should no longer rely on. Out of the 41,627 APIs considered, we found only 263 (0.6) in which some operations are deprecated before being removed, while the developers of 10,242 (24.6%) of them directly remove operations without first informing their clients about the potentially breaking change. Furthermore, we found that only 5.2% of the explicit-deprecated operations and 8.0% of the deprecated-in-description operations end with a removal, suggesting a tendency to deprecate operations without removing them. Overall, we observed a low negative correlation between the relative amount of deprecated operations and the age of the corresponding APIs.

Download

DOI: 10.1007/978-3-031-16697-6_3

PDF: ▼apiace-ecsa2022-deprecate.pdf (536KB)

Citation

Bibtex

@inproceedings{apiace:2022:ecsa,
	author = {Fabio Di Lauro and Souhaila Serbout and Cesare Pautasso},
	title = {To deprecate or to simply drop operations? An empirical study on the evolution of a large OpenAPI collection},
	booktitle = {16th European Conference on Software Architecture (ECSA)},
	year = {2022},
	month = {September},
	address = {Prague, Czech Republic},
	abstract = {OpenAPI is a language-agnostic standard used to describe Web APIs which supports the explicit deprecation of interface features. To assess how APIs evolve over time and observe how their developers handle the introduction of breaking changes, we performed an empirical study on a dataset composed of more thanone million API operations described using OpenAPI and Swagger format. Our results focus on detecting breaking changes engendered by operations removal and whether and to which extent deprecation is used to warn clients and developers about dependencies they should no longer rely on. Out of the 41,627 APIs considered, we found only 263 (0.6%) in which some operations are deprecated before being removed, while the developers of 10,242 (24.6%) of them directly remove operations without first informing their clients about the potentially breaking change. Furthermore, we found that only 5.2% of the explicit-deprecated operations and 8.0% of the deprecated-in-description operations end with a removal, suggesting a tendency to deprecate operations without removing them. Overall, we observed a low negative correlation between the relative amount of deprecated operations and the age of the corresponding APIs.},
	keywords = {API Analytics, API Evolution},
	pages = {38-46},
	doi = {10.1007/978-3-031-16697-6_3}
}