How Do Developers React to RESTful API Evolution?

With the rapid adoption of REpresentational State Transfer (REST), more software organizations expose their applications as RESTful web APIs and client code developers integrate RESTful APIs into their applications. When web APIs evolve, the client code developers have to update their applications to incorporate the API changes accordingly. However client code developers often encounter challenges during the migration and API providers have little knowledge of how client code developers react to the API changes. In this paper, we investigate the changes among subsequent versions of APIs and classify the identified changes to understand how the RESTful web APIs evolve. We study the on-line discussion from developers to the API changes by analyzing the StackOverflow questions. Through an empirical study, we identify 21 change types and 7 of them are new compared with existing studies. We find that a larger portion of RESTful web API elements are changed between versions compared with Java APIs and WSDL services. Moreover, our results show that adding new methods in the new version causes more questions and views from developers. However the deleted methods draw more relevant discussions. In general, our results provide valuable insights of RESTful web API evolution and help service providers understand how their consumers react to the API changes in order to improve the practice of evolving the service APIs.

[1]  Amit P. Sheth,et al.  A Faceted Classification Based Approach to Search and Rank Web APIs , 2008, 2008 IEEE International Conference on Web Services.

[2]  Ralph E. Johnson,et al.  How do APIs evolve? A story of refactoring , 2006, J. Softw. Maintenance Res. Pract..

[3]  Jun Li,et al.  How Does Web Service API Evolution Affect Clients? , 2013, 2013 IEEE 20th International Conference on Web Services.

[4]  Zhenchang Xing,et al.  What help do developers seek, when and how? , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[5]  R. Yin Case Study Research: Design and Methods , 1984 .

[6]  Andy Zaidman,et al.  Web API growing pains: Stories from client developers and their code , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

[7]  Lena Mamykina,et al.  Design lessons from the fastest q&a site in the west , 2011, CHI.

[8]  K. Goulden,et al.  Effect Sizes for Research: A Broad Practical Approach , 2006 .

[9]  Daniele Romano,et al.  Analyzing the Evolution of Web Services Using Fine-Grained Changes , 2012, 2012 IEEE 19th International Conference on Web Services.

[10]  Eleni Stroulia,et al.  An Empirical Study on Web Service Evolution , 2011, 2011 IEEE International Conference on Web Services.

[11]  Gabriele Bavota,et al.  How do API changes trigger stack overflow discussions? a study on the Android SDK , 2014, ICPC 2014.

[12]  Eleni Stroulia,et al.  WSDarwin: Studying the Evolution of Web Service Systems , 2014, Advanced Web Services.

[13]  Ahmed E. Hassan,et al.  What are developers talking about? An analysis of topics and trends in Stack Overflow , 2014, Empirical Software Engineering.

[14]  R. Grissom,et al.  Effect sizes for research: A broad practical approach. , 2005 .