Automatic identification of web API change types in consumer applications

  • Graciela Vidal UNPA
  • Franco Herrera UNPA
  • Sandra Casas UNPA

Resumo


La evolución de las API web afecta a las aplicaciones consumidoras. Su modificación y/o adaptación para que sea compatible con los cambios de las APIs suele ser crítica, ya que es manual, y requiere mayores costes y esfuerzos. Estudios previos registran tipos y/o patrones de cambios en APIs web. Sin embargo, las propuestas que ayuden a los desarrolladores a identificar automáticamente cambios en sus aplicaciones son insuficientes. Este trabajo propone un enfoque que permite identificar automáticamente un conjunto de tipos de cambios. La estrategia consiste en utilizar un diccionario de APIs consumidas y la verificación automática de inconsistencias con la especificación actual de las APIs incluidas en el diccionario.

Palavras-chave: APIs web, Consumer applications, Evolution, APIs changes types

Referências

Aué, J., Aniche, M., Lobbezoo, M., & van Deursen, A. (2018). “An Exploratory Study on Faults in Web API Integration in a Large-Scale Payment Company”. In ICSE-SEIP '18: 40th International Conference on Software Engineering: SoftwareEngineering in Practice Track (pp. 13-22). Association for Computing Machinery (ACM). https://doi.org/10.1145/3183519.3183537

Brito A., Valente M.T, Xavier L. (2020) “You broke my code: understanding the motivations for breaking changes in APIs,” Empirical Software Engineering 25, 1458–1492.

Chaturvedi, A. Tiwari A., Binkley D. and Chaturvedi S.(2021) "Service Evolution Analytics: Change and Evolution Mining of a Distributed System," in IEEE Transactions on Engineering Management, vol. 68, no. 1, pp. 137-148. doi: 10.1109/TEM.2020.2987641.

Curbera F., Duftler M., Khalaf R., Nagy W., Mukhi N., and Weerawarana S.. (2002) “Unraveling the web services web: an introduction to SOAP, WSDL, and UDDI,” Internet Computing, vol. 6, no. 2, pp. 86–93, 2002.

Dekel U. and Herbsleb J.D. (2009) “Reading the documentation of invoked API functions in program comprehension” ICPC’09, pp. 168–177.

Dig D. and Johnson R.E (2006) “How do APIs evolve? A story of refactoring.” In Journal of Software Maintenance, vol. 18, pp. 83-107.

Eilertsen A.M. and Bagge A.H. (2018) “Exploring API / Client Co-Evolution”, Gothenburg, Sweden 2nd International Workshop on API Usage and Evolution.

Espinha T. Zaidman A. and Gross H.G (2014) “Web API growing pains: Stories from client developers and their code”. IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE). IEEE CS, pp. 84–93.

Espinha T., Zaidman A., and Gross H.G. (2015) “Web API Fragility: How Robust is Your Mobile Application?” in Proceedings of the IEEE MOBILESoft, pp. 12–21.

Fokaefs M., Mikhaiel R., Tsantalis N, Stroulia E., Lau A. (2011) “An Empirical Study on Web Service Evolution”. IEEE International Conference on Web Services.

Jezek K. and Dietrich J.(2017) “API Evolution and Compatibility: A Data Corpus and Tool Evaluation”. Journal of Object Technology, 2:1–23. https://doi.org/10.5381/jot.2017.16.4.a2

Lamothe M., Guéhéneuc Y.G, and Shang W.(2021) ” A Systematic Review of API Evolution Literature”. ACM Comput. Surv. 54, 8, Article 171 .36 pages. https://doi.org/10.1145/3470133

Li J, Xiong Y., Liu X., and Zhang L. (2013) “How does web service API evolution affect clients?” 20th Conf. on Web Services (ICWS). IEEE, pp. 300–307.

Maalej W. and Robillard M.P. (2013) “Patterns of knowledge in API reference documentation,” IEEE Trans. Softw. Eng., vol. 39, no. 9, pp. 1264–1282.

Peffers K, Tuunanen T., Rothenberger A. and Chatterjee S. (2007) “A design science research methodology for information systems research”. Journal of Management Information Systems, 24(3). Pp 45–77 https://doi.org/10.2753/MIS0742-1222240302

R. Koçi R., Franch X., Janovic P and Abelló A (2019) “Classification of Changes in API Evolution”. IEEE 23rd International Enterprise Distributed Object Computing Conference (EDOC)

Robbes R., Lungu M. and Janes A.(2019) “API fluency” ICSE-NIER '19: Proceedings of the 41st International Conference on Software Engineering: New Ideas and Emerging Results. pp 97–100. https://doi.org/10.1109/ICSE-NIER.2019.00033

Sohan S.M., Anslow C, Maurer F. (2015) “A Case Study of Web API Evolution”. IEEE World Congress on Services. Doi: 10.1109/SERVICES.2015.43.

Stocker M. and Zimmermann O. (2021) “From Code Refactoring to API Refactoring: Agile Service Design and Evolution”.Conférence Symposium and Summer School on Service-Oriented Computing Pages 174-193 - Éditeur Springer, doi 10.1007/978-3-030-87568-8_11.

SungGyeong B., Hyunghun Ch., Inho L., and Sukyoung R. (2014). SAFEWAPI: web API misuse detector for web applications. Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering . Pages 507–517. DOI: https://doi.org/10.1145/2635868.2635916

Tashtoush T., AlRashdan M.N., Salameh O. and Alsmirat M. (2019) "Swagger-based jQuery Ajax Validation," IEEE 9th Annual Computing and Communication Workshop and Conference (CCWC) pp. 0069-0072, doi: 10.1109/CCWC.2019.8666542.

Vinoski S.(2008) “Restful web services development checklist,” IEEE Internet Computing, vol. 12, no. 6, pp. 96–95.

Wittern E. (2018).”Web APIs—Challenges, design points, and research opportunities”. In Proceedings of the 2nd International Workshop on API Usage and Evolution. ACM Press, New York, NY, 18–18.

Wittern E., Ying A.T.T, Zheng Y, Dolby J. and Laredo J.A. (2017) "Statically Checking Web API Requests in JavaScript," IEEE/ACM 39th International Conference on Software Engineering (ICSE) pp. 244-254, doi: 10.1109/ICSE.2017.30.

Xavier L., Brito A., Hora A., Valente M.T. (2017) Historical and Impact Analysis of API Breaking Changes: A Large-Scale Study. IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER). Doi 10.1109/SANER.2017.7884616.

Yasmin J., Tian Y. and Yang J. (2020) "A First Look at the Deprecation of RESTful APIs: An Empirical Study," in IEEE International Conference on Software Maintenance and Evolution (ICSME), Adelaide, Australia, pp. 151-161.doi: 10.1109/ICSME46990.2020.00024
Publicado
13/06/2022
VIDAL, Graciela; HERRERA, Franco; CASAS, Sandra. Automatic identification of web API change types in consumer applications. In: CONGRESSO IBERO-AMERICANO EM ENGENHARIA DE SOFTWARE (CIBSE), 25. , 2022, Córdoba. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2022 . p. 91-104. DOI: https://doi.org/10.5753/cibse.2022.20965.