Proactive Mitigation of Deprecated API Version Usage : Utilizing continuous integration to automatically and proactively detect deprecated API version usage in microservice ecosystems

University essay from Uppsala universitet/Institutionen för informatik och media

Abstract: The notion of change is one of the more pronounced challenges API developers face, since a change to published APIs means a change for its’ consumers. API Versioning is a commonly used strategy to mitigate the risks of changing APIs, however, the strategy introduces a possibility of having practically innumerable number of API versions published at once, all possibly used by different consumers, creating considerable overhead for API developers to manage. API Versioning and API version management are well-researched disciplines. Nevertheless, Yasmin et al. (2020) have identified a research gap in the support for API consumers to made aware of API deprecations in a proactive and automatic fashion. API Versioning in the context of microservices– which the literature seldom addresses– may serve as an interesting solution space for answering the call of Yasmin et al. (2020), due to the architecture’s strong ties to continuous integration– a practice concerned with automatically and proactively ensuring software quality. Concisely, this thesis is set out to answer Yasmin et al.’s (2020) call for research by utilizing the underexplored contextualization of microservices and continuous integration. Using a Design Science Research strategy, this thesis proposes a model detailing how deprecated RESTful web API version usage can be automatically and proactively detected in microservices using continuous integration. The model is subsequently proven to be instantiable via a proof of concept, designed for and situated at a national Swedish bank. Through a series of in-vitro simulations at the bank, the proof of concept is demonstrated to successfully being able to automatically and proactively detect deprecated RESTful web API version usage. An evaluation of the solution shows that the proof of concept– and by extent the model– fulfills the demarcated research objectives of automaticity, proactivity, generality, and autonomy. Thus, the proposed solution is determined to be both novel and useful, successfully answering the call of Yasmin et al. (2020) in the context of microservices and continuous integration. 

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)