[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to main content

How Many Web APIs Evolve Following Semantic Versioning?

  • Conference paper
  • First Online:
Web Engineering (ICWE 2024)

Abstract

More and more Web APIs use semantic versioning to represent the impact of changes on clients depending on previous versions. Our goal is to provide insights about the extent to which evolving Web APIs align with semantic versioning rules. In this paper we present the results of an empirical study on the descriptions of 3 075 Web APIs, which released at least one new version throughout their history. The APIs descriptions were mined by retrieving 132 909 commits from 2 028 different open source GitHub repositories. We systematically collected and examined 506 273 changes of 195 different types released within 16 053 new API versions. We classified whether each change is likely to break clients or not, and checked whether the corresponding version identifier has been updated following semantic versioning rules. The results indicate that in the best case, only 517 APIs consistently release major upgrades when introducing breaking changes, while 1 970 APIs will not always correctly inform their clients about breaking changes released as part of minor or patch-level upgrades. We also detected 927 APIs which use a backwards-compatible evolution strategy, as they never introduce any breaking change throughout their history.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
£29.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
GBP 19.95
Price includes VAT (United Kingdom)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
GBP 79.99
Price includes VAT (United Kingdom)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
GBP 64.99
Price includes VAT (United Kingdom)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Semantic Versioning. https://semver.org/

  2. Bogart, C., Kästner, C., Herbsleb, J., Thung, F.: When and how to make breaking changes: policies and practices in 18 open source software ecosystems. ACM TOSEM 30(4), 1–56 (2021)

    Article  Google Scholar 

  3. Daigneau, R.: Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and Restful Web Services. Addison-Wesley, Boston (2012)

    Google Scholar 

  4. Dietrich, J., Pearce, D., Stringer, J., Tahir, A., Blincoe, K.: Dependency versioning in the wild. In: Proceedings of 16th International Conference on Mining Software Repositories (MSR), pp. 349–359 (2019)

    Google Scholar 

  5. Giretti, A.: API versioning. In: Beginning gRPC with ASP.NET Core 6, pp. 223–237 (2022)

    Google Scholar 

  6. Henning, M.: API design matters. Queue 5(4), 24–36 (2007)

    Article  Google Scholar 

  7. Lam, P., Dietrich, J., Pearce, D.J.: Putting the semantics into semantic versioning. In: Proceedings of the 2020 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, pp. 157–179 (2020)

    Google Scholar 

  8. Lamothe, M., Guéhéneuc, Y.G., Shang, W.: A systematic review of API evolution literature. ACM Comput. Surv. (CSUR) 54(8), 1–36 (2021)

    Article  Google Scholar 

  9. Li, W., Wu, F., Fu, C., Zhou, F.: A large-scale empirical study on semantic versioning in golang ecosystem. In: Proceedings of 38th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 1604–1614. IEEE (2023)

    Google Scholar 

  10. Medjaoui, M., Wilde, E., Mitra, R., Amundsen, M.: Continuous API Management. O’Reilly, Sebastopol (2021)

    Google Scholar 

  11. OASDiff. https://github.com/Tufin/oasdiff

  12. Ochoa, L., Degueule, T., Falleri, J.R.: Breakbot: analyzing the impact of breaking changes to assist library evolution. In: Proceedings of 44th International Conference on Software Engineering (ICSE): New Ideas and Emerging Results, pp. 26–30 (2022)

    Google Scholar 

  13. Ochoa, L., Degueule, T., Falleri, J.R., Vinju, J.: Breaking bad? Semantic versioning and impact of breaking changes in maven central. Empir. Softw. Eng. 27(3), 1–42 (2022)

    Article  Google Scholar 

  14. OpenAPI Initiative. https://www.openapis.org/

  15. Peralta, J.H.: Microservice APIs: Using Python, Flask, FastAPI, OpenAPI and More. Simon and Schuster, New York (2023)

    Google Scholar 

  16. Pinckney, D., Cassano, F., Guha, A., Bell, J.: A large scale analysis of semantic versioning in NPM. In: IEEE International Working Conference on Mining Software Repositories (2023)

    Google Scholar 

  17. Raemaekers, S., van Deursen, A., Visser, J.: Semantic versioning and impact of breaking changes in the maven repository. J. Syst. Softw. 129, 140–158 (2017)

    Article  Google Scholar 

  18. Serbout, S., Muñoz Hurtado, D.C., Pautasso, C.: Interactively exploring API changes and versioning consistency. In: Proceedings of 11th IEEE Working Conference on Software Visualization (VISSOFT), pp. 28–39 (2023)

    Google Scholar 

  19. Serbout, S., Pautasso, C.: An empirical study of web API versioning practices. In: Garrigós, I., Murillo Rodríguez, J.M., Wimmer, M. (eds.) ICWE 2023. LNCS, vol. 13893, pp. 303–318. Springer, Cham (2023). https://doi.org/10.1007/978-3-031-34444-2_22

    Chapter  Google Scholar 

  20. Serbout, S., Pautasso, C.: APIstic: a large collection of OpenAPI metrics. In: Proceedings of 21st IEEE/ACM International Conference on Mining Software Repositories (MSR), Lisbon, Portugal (2024)

    Google Scholar 

  21. Stocker, M., Zimmermann, O.: API refactoring to patterns: catalog, template and tools for remote interface evolution. In: Proceedings of 28th European Conference on Pattern Languages of Programs (EuroPLoP). ACM (2023)

    Google Scholar 

  22. Zhang, L., et al.: Has my release disobeyed semantic versioning? Static detection based on semantic differencing. In: Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering, pp. 1–12 (2022)

    Google Scholar 

  23. Zimmermann, O., Stocker, M., Lubke, D., Zdun, U., Pautasso, C.: Patterns for API Design: Simplifying Integration with Loosely Coupled Message Exchanges. Addison-Wesley, Boston (2022)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Souhaila Serbout .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Serbout, S., Pautasso, C. (2024). How Many Web APIs Evolve Following Semantic Versioning?. In: Stefanidis, K., Systä, K., Matera, M., Heil, S., Kondylakis, H., Quintarelli, E. (eds) Web Engineering. ICWE 2024. Lecture Notes in Computer Science, vol 14629. Springer, Cham. https://doi.org/10.1007/978-3-031-62362-2_25

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-62362-2_25

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-62361-5

  • Online ISBN: 978-3-031-62362-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics