A Large-scale Empirical Assessment of Web API Size Evolution

Authors

  • Fabio Di Lauro Software Institute (USI), Lugano, Switzerland
  • Souhaila Serbout Software Institute (USI), Lugano, Switzerland
  • Cesare Pautasso Software Institute (USI), Lugano, Switzerland

DOI:

https://doi.org/10.13052/jwe1540-9589.2167

Keywords:

Web API, API Evolution, Software Evolution, OpenAPI

Abstract

Like any other type of software, also Web Application Programming Interfaces (APIs) evolve over time. In the case of widely used API, introducing changes is never a trivial task, because of the risk of breaking thousands of clients relying on the API. In this paper we conduct an empirical study over a large collection of OpenAPI descriptions obtained by mining open source repositories. We measure the speed at which Web APIs change and how changes affect their size, simply defined as the number of operations. The dataset of API descriptions was collected over a period of one year and includes APIs with histories spanning across up to 7 years of commits. The main finding is that APIs tend to grow, although some do reduce their size, as shown in the case study examples included in the appendix.

Downloads

Download data is not yet available.

Author Biographies

Fabio Di Lauro, Software Institute (USI), Lugano, Switzerland

Fabio Di Lauro is a Ph.D. student in the Design and Web Information Systems Engineering research group at the Software Institute at USI Lugano, Switzerland, under the supervision of Prof. Dr. Cesare Pautasso. He completed his undergraduate studies at Università degli Studi di Milano, Italy in Information and Communication Technologies in 2011. Currently, he is working on analyzing the evolution of Web APIs.

Souhaila Serbout, Software Institute (USI), Lugano, Switzerland

Souhaila Serbout is a Ph.D. student in the Design and Web Information Systems Engineering research group at the Software Institute at USI Lugano, Switzerland, under the supervision of Prof. Dr. Cesare Pautasso. She carried out a Masters’s in New Technologies of Informatics at the Faculty of Informatics of the University of Murcia, Spain. In 2018, obtained a state engineer’s degree in computer science from Ecole Nationale Supérieure d’Informatique et d’Analyse des Systèmes in Rabat, Morocco. Currently, she works on visualizing and analyzing Web APIs structures, data models and patterns to find the mismatches between developers’ expectations and real-world APIs designs.

Cesare Pautasso, Software Institute (USI), Lugano, Switzerland

Cesare Pautasso is full professor at the Software Institute at USI Lugano, Switzerland. He leads the Architecture, Design and Web Information Systems Engineering research group, which focuses on building experimental systems to explore the intersection of Text-to-Visual modeling languages, API analytics and liquid software architectures. He is the general chair for EuroPLoP 2022 and SOSE 2022. He was the program co-chair for ICWE 2021, ICSOC 2013, ECOWS 2010 and Software Composition 2008 and the ICWE 2016, ECOWS 2011 general chair. He is the co-editor of the IEEE Software Insights department. His e-books on Email Anti-Patterns, Software Architecture, Business Process Management, and API visualization are available on LeanPub.

References

OpenAPI Initiative. https://www.openapis.org/. Accessed: 2020-12-30.

Prance. https://pypi.org/project/prance/. Accessed: 2020-12-28.

open-api-spec-validator. https://github.com/p1c2u/openapi-spec-validator. Accessed: 2020-12-29.

Alberto Abelló, Claudia P. Ayala, Carles Farré, Cristina Gómez, Marc Oriol, and Oscar Romero. A data-driven approach to improve the process of data-intensive API creation and evolution. In Proc. of the Forum and Doctoral Consortium Papers Presented at CAiSE, volume 1848, pages 1–8. CEUR-WS.org, 2017.

Gámez-Díaz Antonio, Fernandez Pablo, and Antonio Ruiz-Cortés. An analysis of restful apis offerings in the industry. In Proc. International Conference on Service-Oriented Computing (ICSOC), pages 589–604, 2017.

R. Arnold. Software change impact analysis. 1996.

Gabriele Bavota, Mario Linares-Vasquez, Carlos Eduardo Bernal-Cardenas, Massimiliano Di Penta, Rocco Oliveto, and Denys Poshyvanyk. The impact of api change-and fault-proneness on the user ratings of android apps. IEEE Transactions on Software Engineering, 41(4):384–407, 2014.

Gleison Brito and Marco Tulio Valente. REST vs GraphQL: A Controlled Experiment. In 2020 IEEE International Conference on Software Architecture (ICSA), pages 81–91. IEEE, mar 2020.

E. Burd and M. Munro. An initial approach towards measuring and characterising software evolution. In Sixth Working Conference on Reverse Engineering (Cat. No.PR00303), pages 168–174, 1999.

A. Cimitile, A.R. Fasolino, and G. Visaggio. A software model for impact analysis: a validation experiment. In Sixth Working Conference on Reverse Engineering (Cat. No.PR00303), pages 212–222, 1999.

Danny Dig and Ralph Johnson. How do apis evolve? a story of refactoring. Journal of software maintenance and evolution: Research and Practice, 18(2):83–107, 2006.

Anna Maria Eilertsen and Anya Helene Bagge. Exploring api/client co-evolution. In 2nd IEEE/ACM International Workshop on API Usage and Evolution (WAPI@ICSE), pages 10–13, 2018.

Tiago Espinha, Andy Zaidman, and Hans-Gerhard Gross. Web api growing pains: Stories from client developers and their code. In Proc. IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE). IEEE, 2014.

Roy Thomas Fielding. REST: Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000.

Nicolas Gold and Andrew Mohan. A framework for understanding conceptual changes in evolving source code. In Proceedings of the International Conference on Software Maintenance, ICSM ’03, page 431, USA, 2003. IEEE Computer Society.

Olaf Hartig and Jorge Pérez. Semantics and complexity of GraphQL. In Proc. World Wide Web Conference, pages 1155–1164, 2018.

Florian Haupt, Frank Leymann, Anton Scherer, and Karolina Vukojevic-Haupt. A framework for the structural analysis of rest apis. In 2017 IEEE International Conference on Software Architecture (ICSA), pages 55–58. IEEE, 2017.

Florian Haupt, Frank Leymann, and Karolina Vukojevic-Haupt. Api governance support through the structural analysis of rest apis. Computer Science-Research and Development, 33(3):291–303, 2018.

A. Hora, A. Etien, N. Anquetil, S. Ducasse, and M. T. Valente. APIEvolutionMiner: Keeping api evolution under control. In Proc. IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE), pages 420–424, 2014.

André Hora, Romain Robbes, Marco Tulio Valente, Nicolas Anquetil, Anne Etien, and Stéphane Ducasse. How do developers react to api evolution? a large-scale empirical study. Software Quality Journal, 26(1):161–191, 2018.

Daqing Hou and Xiaojia Yao. Exploring the intent behind api evolution: A case study. In 2011 18th Working Conference on Reverse Engineering, pages 131–140. IEEE, 2011.

Holger Knoche and Wilhelm Hasselbring. Continuous api evolution in heterogenous enterprise software systems. In 2021 IEEE 18th International Conference on Software Architecture (ICSA), pages 58–68, 2021.

R. Koçi, X. Franch, P. Jovanovic, and A. Abelló. Classification of changes in api evolution. In Proc. 23rd International Enterprise Distributed Object Computing Conference (EDOC), pages 243–249, 2019.

Maxime Lamothe, Yann-Gaël Guéhéneuc, and Weiyi Shang. A systematic review of api evolution literature. ACM Computing Surveys (CSUR), 54(8):1–36, 2021.

Arnaud Lauret. The Design of Web APIs. Manning, 2019.

Fabio Di Lauro, Souhaila Serbout, and Cesare Pautasso. Towards large-scale empirical assessment of web apis evolution. In 21st International Conference on Web Engineering (ICWE2021), Biarritz, France, May 2021. Springer, Springer.

J. Law and G. Rothermel. Whole program path-based dynamic impact analysis. In 25th International Conference on Software Engineering, 2003. Proceedings., pages 308–318, 2003.

M.M. Lehman, D.E. Perry, and J.F. Ramil. Implications of evolution metrics on software maintenance. In Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272), pages 208–217, 1998.

M.M. Lehman, J.F. Ramil, P.D. Wernick, D.E. Perry, and W.M. Turski. Metrics and laws of software evolution-the nineties view. In International Software Metrics Symposium, pages 20–32, Albuquerque, NM, November 1997.

Jun Li, Yingfei Xiong, Xuanzhe Liu, and Lu Zhang. How does web service API evolution affect clients? In Proc. 20th International Conference on Web Services (ICWS), 2013.

Daniel Lübke, Olaf Zimmermann, Cesare Pautasso, Uwe Zdun, and Mirko Stocker. Interface evolution patterns — balancing compatibility and flexibility across microservices lifecycles. In Proc. 24th European Conference on Pattern Languages of Programs (EuroPLoP 2019). ACM, 2019.

Tarek Mahmud, Mujahid Khan, Jihan Rouijel, Meiru Che, and Guowei Yang. Api change impact analysis for android apps. In 2021 IEEE 45th Annual Computers, Software, and Applications Conference (COMPSAC), pages 894–903. IEEE, 2021.

Cesare Pautasso and Olaf Zimmermann. The Web as a software connector: Integration resting on linked resources. IEEE Software, 35:93–98, January/February 2018.

Clément Quinton, Michael Vierhauser, Rick Rabiser, Luciano Baresi, Paul Grünbacher, and Christian Schuhmayer. Evolution in dynamic software product lines. Journal of Software: Evolution and Process, 33(2):e2293, 2021.

Souhaila Serbout, Fabio Di Lauro, and Cesare Pautasso. Web apis structures and data models analysis. In Proc. International Conference on Software Architecture (ICSA). IEEE, 2022. to appear.

Souhaila Serbout, Cesare Pautasso, Uwe Zdun, and Olaf Zimmermann. From OpenAPI fragments to api pattern primitives and design smells. In Proc. European Conference on Pattern Languages of Programs (EuroPLoP), 2021.

S. M. Sohan, Craig Anslow, and Frank Maurer. A case study of Web API evolution. In Proc. IEEE World Congress on Services, pages 245–252, 2015.

Shaohua Wang, Iman Keivanloo, and Ying Zoua. How do developers react to RESTful API evolution? In Proc. International Conference on Service-Oriented Computing, page 245–259. Springer, 2014.

Erik Wittern, Alan Cha, James C Davis, Guillaume Baudart, and Louis Mandel. An empirical study of graphql schemas. In International Conference on Service-Oriented Computing, pages 3–19. Springer, 2019.

J. Yang, E. Wittern, A. T. T. Ying, J. Dolby, and L. Tan. Towards extracting web api specifications from documentation. In 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR), pages 454–464, 2018.

Jerin Yasmin, Yuan Tian, and Jinqiu Yang. A first look at the deprecation of restful apis: An empirical study. In 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 151–161. IEEE, 2020.

T. Zimmermann, A. Zeller, P. Weissgerber, and S. Diehl. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 31(6):429–445, 2005.

Published

2022-11-09

Issue

Section

Articles