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

An Empirical Study of Web API Versioning Practices

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

Abstract

As Web APIs evolve, developers assign them version identifiers to reflect the amount and the nature of changes that the API clients should expect. In this work we focus on identifying versioning practices adopted by Web API developers by extracting and classifying version identifiers found in a large collection of OpenAPI descriptions. In particular, we observe how frequently different versioning schemes have been adopted for identifying both stable and preview releases (e.g., simple version counters, semantic versioning, or release timestamps). We further study the stability of versioning schemes during APIs evolution. We also detect APIs which offer dynamic access to versioning metadata through dedicated endpoints as well as APIs which support clients expecting to reach up to 14 different versions of the same API at the same time. Overall the results offer a detailed view over current Web API versioning practices and can serve as the basis for future discussions on how to standardize critical API versioning metadata.

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 51.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. OpenAPI Initiative. https://www.openapis.org/

  3. https://github.com/USI-INF-Software/API-Versioning-practices-detection

  4. https://docs.npmjs.com/about-semantic-versioning

  5. SwaggerHub. https://app.swaggerhub.com/

  6. Release naming conventions. https://www.drupal.org/node/1015226

  7. https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/

  8. SWR Audio Lab - Radiohub API. https://github.com/swrlab/swrlab/blob/main/openapi/openapi.yaml

  9. Bogart, C., Kästner, C., Herbsleb, J., Thung, F.: How to break an API: cost negotiation and community values in three software ecosystems. In: Proceedings of the 24th International Symposium on Foundations of Software Engineering (FSE), pp. 109–120 (2016)

    Google Scholar 

  10. Decan, A., Mens, T., Mazrae, P.R., Golzadeh, M.: On the use of GitHub actions in software development repositories. In: International Conference on Software Maintenance and Evolution (ICSME), pp. 235–245 (2022)

    Google Scholar 

  11. Di Lauro, F., Serbout, S., Pautasso, C.: A large-scale empirical assessment of web API size evolution. J. Web Eng. 21(6), 1937–1980 (2022)

    Google Scholar 

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

    Google Scholar 

  13. Lauret, A.: The Design of web APIs. Simon and Schuster (2019)

    Google Scholar 

  14. Lübke, D., Zimmermann, O., Pautasso, C., Zdun, U., Stocker, M.: Interface evolution patterns: balancing compatibility and extensibility across service life cycles. In: Proceedings of the 24th EuroPLoP (2019)

    Google Scholar 

  15. Marquardt, K.: Patterns for software release versioning. In: Proceedings of the 15th European Conference on Pattern Languages of Programs (EuroPLoP) (2010)

    Google Scholar 

  16. 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 

  17. Raatikainen, M., Kettunen, E., Salonen, A., Komssi, M., Mikkonen, T., Lehtonen, T.: State of the practice in application programming interfaces (APIs): a case study. In: Biffl, S., Navarro, E., Löwe, W., Sirjani, M., Mirandola, R., Weyns, D. (eds.) ECSA 2021. LNCS, vol. 12857, pp. 191–206. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-86044-8_14

    Chapter  Google Scholar 

  18. Serbout, S., Di Lauro, F., Pautasso, C.: Web APIs structures and data models analysis. In: Companion Proceedings of the 19th International Conference on Software Architecture (ICSA), pp. 84–91 (2022)

    Google Scholar 

  19. Varga, E.: Creating Maintainable APIs. APress (2016)

    Google Scholar 

  20. Yang, J., Wittern, E., Ying, A.T., Dolby, J., Tan, L.: Towards extracting web API specifications from documentation. In: Proceedings of the 15th International Conference on Mining Software Repositories (MSR), pp. 454–464 (2018)

    Google Scholar 

  21. Zhang, L., et al.: Has my release disobeyed semantic versioning? Static detection based on semantic differencing. In: Proceedings of the 37th International Conference on Automated Software Engineering (2023)

    Google Scholar 

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

    Google Scholar 

Download references

Acknowledgements

The authors acknowledge Fabio Di Lauro for gathering the raw dataset, and Deepansha Chowdhary for conducting a feasibility study on it. This work was supported by the SNF with the API-ACE project number 184692.

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

© 2023 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. (2023). An Empirical Study of Web API Versioning Practices. In: Garrigós, I., Murillo Rodríguez, J.M., Wimmer, M. (eds) Web Engineering. ICWE 2023. Lecture Notes in Computer Science, vol 13893. Springer, Cham. https://doi.org/10.1007/978-3-031-34444-2_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-34444-2_22

  • Published:

  • Publisher Name: Springer, Cham

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

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics