Client APIs are Effected by Web APIs Evolution

No Thumbnail Available

Date

2021

Journal Title

Journal ISSN

Volume Title

Publisher

Library Information Services, COMSATS University Islamabad, Lahore Campus

Abstract

Web APIs (Application Programming Interfaces) evolution means updating the APIs to improve their performance. Web services are used for communication between applications such as Facebook, Youtube, etc. The commonly used protocols in web services are SOAP (Simple Object Access Protocol), REST (Representational State Transfer), JSON (JavaScript Object Notation), WPS (Web Processing Service), WSCL (Web Services Conversation Language), WSFL (Web Services Flow Language) and XML-RPC (XML Remote Procedure Call). The SOAP is with strict rules and allows only XML data format while REST is a Representational State Transfer and it allows a combination of different messaging data formats such as HTML, JSON, XML, and plain text. The APIs versioning consists of some changes such as adding new methods and parameters, updating methods and parameters names, and deleting methods and parameters. These changes provide an opportunity to analyze design patterns and antipatterns. The APIs may have incomplete functionalities, which shows immature APIs updates. The APIs updates bring new and improved functionalities as well as incompatibilities and integration problems for client developers. The client developers have to modify their client programs according to these changes to use new APIs. However, much prior work is found related to web services (web APIs), but our research work is mainly related to client APIs as well as web APIs. The main objective of this research is to analyze web APIs evolution pains as well as pain-causing factors to client APIs. For this purpose, we use the versioning history approach, and record the changelog of web APIs such as Youtube, and performed empirical analysis. We invoke web APIs for the detection of antipatterns. We develop a reverse engineering Add-in in Sparx System for reverse engineering of the web APIs. The Add-in automatically generates source code metrics from source code dll. The Add-in extracts 9 artifacts from source code such as the number of interfaces, number of classes, number of fields, number of code files, number of namespaces, disk size, manifest, and availability. We extract source code metrics from 10 web APIs such as Alchemy, BestBuy, Bitly, Dropbox, External-IP, Facebook, Instagram, TeamViewer, WhatsApp, and YouTube. We also extract source code metrics from 10 open-source client projects APIs such as NewtonSoft, RestSharp, NLog, SharpZipLib, Protobuf-net, Zxing, Telegram, Lucene, SharpDX, and AForge. We perform empirical analysis on source code metrics and analyzed that the APIs evolve due to Changing the number of interfaces, Changing the number of classes, Changing the number x of methods, Changing the number of fields, Changing the number of code files, Changing the number of namespaces, and Changing the size of the file. When web APIs evolve, client APIs also evolve respectively to accommodate these changes. Therefore, client APIs are effected by web APIs evolution

Description

Keywords

Dr. Ghulam Rasool, FA17, TECHNOLOGY::Information technology::Computer science, Department of Computer Science, Web APIs (Application Programming Interfaces), WPS (Web Processing Service), WSCL (Web Services Conversation Language), WSFL (Web Services Flow Language) and XML-RPC (XML Remote Procedure Call).

Citation

Collections

Endorsement

Review

Supplemented By

Referenced By