EVOLUTION OF WEB APPLICATION PROGRAMMING INTERFACES:DRIVING FORCES, EFFECTS ON CLIENTS, AND PATTERNS FOR PROVIDERS

T.V. Puchko

Èlektron. model. 2023, 45(4):61-77

https://doi.org/10.15407/emodel.45.04.061

ABSTRACT

The current state of research on finding effective methods of maintaining compatibility between providers of web application programming interfaces and their clients is described. Reasons and types of changes in the web application programming interfaces, effects of the chan­ges on the clients, patterns for developers, adaptation methods, and regression testing are reviewed.

KEYWORDS

Web API, Evolution, Compatibility, Deprecation.

REFERENCES

  1. Raatikainen, M., Kettunen, E., Salonen, A., Komssi, M., Mikkonen, T., & Lehtonen, T. (2022). State of the practice in application programming interfaces (APIs): A case study. In S. Biffl, E. Navarro, W. Löwe, M. Sirjani, R. Mirandola, & D. Weyns (Eds.), Software architecture: 15th European conference, ECSA 2021, virtual event, Sweden, September 13-17, 2021, proceedings. LNCS 12857 (p. 191-206). Springer. 
    https://doi.org/10.1007/978-3-030-86044-8_14
  2. Bonorden, L., & Riebisch, M. (2022). API deprecation: A systematic mapping study. In 2022 48th euromicro conference on software engineering and advanced applications (SEAA) (p. 451-458). IEEE. 
    https://doi.org/10.1109/SEAA56994.2022.00076
  3. Lübke, D., Zimmermann, O., Pautasso, C., Zdun, U., & Stocker, M. (2019). Interface evolution patterns: Balancing compatibility and extensibility across service life cycles. In EuroPLop '19: Proceedings of the 24th European conference on pattern languages of programs. ACM Press. 
    https://doi.org/10.1145/3361149.3361164
  4. Koçi, R., Franch, X., Jovanovic, P., & Abelló, A. (2019). Classification of changes in API evolution. In 2019 IEEE 23rd international enterprise distributed object computing conference (EDOC) (p. 243-249). IEEE. 
    https://doi.org/10.1109/EDOC.2019.00037
  5. Godefroid, P., Lehmann, D., & Polishchuk, M. (2020). Differential regression testing for REST APIs. In ISSTA 2020: Proceedings of the 29th ACM SIGSOFT international symposium on software testing and analysis (p. 312-323). ACM.
    https://doi.org/10.1145/3395363.3397374
  6. Wang, S., Higashino, W.A., Hayes, M., & Capretz, M.A.M. (2014). Service evolution patterns. In 2014 IEEE international conference on web services (ICWS) (p. 201-208). IEEE. 
    https://doi.org/10.1109/ICWS.2014.39
  7. Lamothe, M., Guéhéneuc, Y.-G., & Shang, W. (2021). A systematic review of API evolution literature. ACM Computing Surveys, 54(8), Article 171. 
    https://doi.org/10.1145/3470133
  8. Granli, W., Burchell, J., Hammouda, I., & Knauss, E. (2015). The driving forces of API evolution. In IWPSE 2015: Proceedings of the 14th international workshop on principles of software evolution (p. 28-37). ACM.
    https://doi.org/10.1145/2804360.2804364
  9. Li, J., Xiong, Y., Liu, X., & Zhang, L. (2013). How does web service API evolution affect clients? In 2013 IEEE international conference on web services (ICWS) (p. 300-307). IEEE. 
    https://doi.org/10.1109/ICWS.2013.48
  10. Wang, S., Keivanloo, I., & Zou, Y. (2014). How do developers react to RESTful API evolution? In X. Franch, A.K. Ghose, G.A. Lewis, & S. Bhiri (Eds.), Service-Oriented computing: 12th international conference, ICSOC 2014, Paris, France, November 3-6, 2014, LNCS 8831 (p. 245-259). Springer. 
    https://doi.org/10.1007/978-3-662-45391-9_17
  11. Sohan, S.M., Anslow, C., & Maurer, F. (2015). A case study of web API evolution. In 2015 IEEE world congress on services (SERVICES) (p. 245-252). IEEE.
    https://doi.org/10.1109/SERVICES.2015.43
  12. Di Lauro, F., Serbout, S., & Pautasso, C. (2021). Towards large-scale empirical assessment of web APIs evolution. In M. Brambilla, R. Chbeir, F. Frasincar, & I. Manolescu (Eds.), Web engineering: 21st international conference, ICWE 2021, Biarritz, France, May 18-21, 2021, proceedings. LNCS 12706 (p. 124-138). Springer.
    https://doi.org/10.1007/978-3-030-74296-6_10
  13. Di Lauro, F., Serbout, S., & Pautasso, C. (2022). A large-scale empirical assessment of web API size evolution. Journal of Web Engineering, 21(6), 1937-1980 
    https://doi.org/10.13052/jwe1540-9589.2167
  14. Espinha, T., Zaidman, A., & Gross, H.-G. (2015). Web API fragility: How robust is your mobile application? In 2015 2nd ACM international conference on mobile software engineering and systems. IEEE. 
    https://doi.org/10.1109/MobileSoft.2015.9
  15. Yasmin, J., Tian, Y., & Yang, J. (2020). A first look at the deprecation of RESTful APIs: An empirical study. In 2020 IEEE international conference on software maintenance and evolution (ICSME). IEEE. 
    https://doi.org/10.1109/ICSME46990.2020.00024
  16. Di Lauro, F., Serbout, S., & Pautasso, C. (2022). To deprecate or to simply drop operations? An empirical study on the evolution of a large OpenAPI collection. In I. Gerostathopoulos, G. Lewis, T. Batista, & T. Bureš (Eds.), Software architecture: 16th European conference, ECSA 2022, Prague, Czech Republic, September 19-23, 2022, proceedings. LNCS 13444 (p. 38-46). Springer. 
    https://doi.org/10.1007/978-3-031-16697-6_3
  17. Espinha, T., Zaidman, A., & Gross, H.-G. (2014). Web API growing pains: Stories from client developers and their code. In 2014 software evolution week - IEEE conference on software maintenance, reengineering and reverse engineering (CSMR-WCRE) (p. 84-93). IEEE. 
    https://doi.org/10.1109/CSMR-WCRE.2014.6747228
  18. Espinha, T., Zaidman, A., & Gross, H.-G. (2015). Web API growing pains: Loosely coupled yet strongly tied. Journal of Systems and Software, 100, 27-43 
    https://doi.org/10.1016/j.jss.2014.10.014
  19. Campinhos, J., Seco, J.C., & Cunha, J. (2017). Type-safe evolution of web services. In 2017 IEEE/ACM 2nd international workshop on variability and complexity in software design (VACE). IEEE. 
    https://doi.org/10.1109/VACE.2017.6
  20. Seco, J.C., Ferreira, P., Lourenço, H., Ferreira, C., & Ferrao, L. (2020). Robust contract evolution in a typesafe microservices architecture. The Art, Science, and Engineering of Programming, 4(3), Article 10. 
    https://doi.org/10.22152/programming-journal.org/2020/4/10
  21. Bustamante, R., & Garcés, K. (2020). Managing evolution of API-driven IoT devices through adaptation chains. In 23rd Ibero-American conference on software engineering (CIbSE 2020) (p. 85-95). CIbSE ― Ibero-American conference on software engineering steering committee. https://cibse2020.ppgia.pucpr.br/images/artigos/3/S03_P1.pdf.
  22. Beurer-Kellner, L., von Pilgrim, J., & Kehrer, T. (2022). Round-trip migration of object-oriented data model instances. In A. Boronat, A. García-Domínguez, & G. Hinkel (Eds.), Joint proceedings of the 13th and 14th tool transformation contests (TTC 2020/2021). https://ceur-ws.org/Vol-3089/ttc20_paper1_BeurerKellner_case.pdf.
  23. Knoche, H., & Hasselbring, W. (2021). Continuous API evolution in heterogenous enterprise software systems. In 2021 IEEE 18th international conference on software architecture (ICSA) (p. 58-68). IEEE. 
    https://doi.org/10.1109/ICSA51549.2021.00014
  24. Beurer-Kellner, L., von Pilgrim, J., Tsigkanos, C., & Kehrer, T. (2022). A transformational approach to managing data model evolution proper evolution strategy, the changes made to the web APIs negatively impact their clients, causing reputational and financial losses. This negative impact can be avoided by carefully of web services. IEEE Transactions on Services Computing, 16(1), 65-79.
    https://doi.org/10.1109/TSC.2022.3144613

Full text: PDF