[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3183519.3183537acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

An exploratory study on faults in web API integration in a large-scale payment company

Published: 27 May 2018 Publication History

Abstract

Service-oriented architectures are more popular than ever, and increasingly companies and organizations depend on services offered through Web APIs. The capabilities and complexity of Web APIs differ from service to service, and therefore the impact of API errors varies. API problem cases related to Adyen's payment service were found to have direct considerable impact on API consumer applications. With more than 60,000 daily API errors, the potential impact is enormous. In an effort to reduce the impact of API related problems, we analyze 2.43 million API error responses to identify the underlying faults. We quantify the occurrence of faults in terms of the frequency and impacted API consumers. We also challenge our quantitative results by means of a survey with 40 API consumers. Our results show that 1) faults in API integration can be grouped into 11 general causes: invalid user input, missing user input, expired request data, invalid request data, missing request data, insufficient permissions, double processing, configuration, missing server data, internal and third party, 2) most faults can be attributed to the invalid or missing request data, and most API consumers seem to be impacted by faults caused by invalid request data and third party integration; and 3) insufficient guidance on certain aspects of the integration and on how to recover from errors is an important challenge to developers.

References

[1]
Apigee. {n. d.}. Apigee: The Cross-Cloud API Platform. https://apigee.com/api-management/. ({n. d.}). {Online; accessed 28-Jun-2017}.
[2]
Apigee. {n. d.}. Web API Design: Crafting Interfaces that Developers Love. http://bit.ly/2EILoin. ({n. d.}). {Online; accessed 28-Jun-2017}.
[3]
Apigee. {n. d.}. Web API Design: The Missing Link. http://bit.ly/2gtEhz6. ({n. d.}). {Online; accessed 28-Jun-2017}.
[4]
Joop Aué, Maurício Aniche, Maikel Lobbezoo, and Arie van Deursen. {n. d.}. An Exploratory Study on Faults in Web API Integration in a Large-Scale Payment Company: Appendix. https://www.zenodo.org/record/1035151. ({n. d.}).
[5]
David Bermbach and Erik Wittern. 2016. Benchmarking web api quality. In International Conference on Web Engineering. Springer.
[6]
Brian Ellis, Jeffrey Stylos, and Brad Myers. 2007. The factory pattern in API design: A usability evaluation. In Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, 302--312.
[7]
Tiago Espinha, Andy Zaidman, and Hans-Gerhard Gross. 2013. Understanding the interactions between users and versions in multi-tenant systems. In Proceedings of the 2013 International Workshop on Principles of Software Evolution. ACM.
[8]
Tiago Espinha, Andy Zaidman, and Hans-Gerhard Gross. 2014. Web API growing pains: Stories from client developers and their code. In Software Evolution Week-IEEE Conference on Software Maintenance, Reengineering and Reverse Engineering.
[9]
Jun Li, Yingfei Xiong, Xuanzhe Liu, and Lu Zhang. 2013. How does web service API evolution affect clients?. In Web Services (ICWS), 2013 IEEE 20th International Conference on. IEEE, 300--307.
[10]
Mario Linares-Vásquez, Gabriele Bavota, Carlos Bernal-Cárdenas, Massimiliano Di Penta, Rocco Oliveto, and Denys Poshyvanyk. 2013. Api change and fault proneness: A threat to the success of android apps. In Proceedings of the 2013 9th joint meeting on foundations of software engineering. ACM, 477--487.
[11]
Brian Mulloy. {n. d.}. RESTful API Design: what about errors? http://bit.ly/2GU9pUi. ({n. d.}). {Online; accessed 28-Jun-2017}.
[12]
Brad A Myers and Jeffrey Stylos. 2016. Improving API usability. Commun. ACM 59, 6 (2016).
[13]
Aniket Patil. {n. d.}. Get developer hugs with rich error handling in your API. http://bit.ly/2gxacyH. ({n. d.}). {Online; accessed 28-Jun-2017}.
[14]
Romain Robbes, Mircea Lungu, and David Röthlisberger. 2012. How do developers react to api deprecation?: the case of a smalltalk ecosystem. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering. ACM, 56.
[15]
Martin Robillard. 2009. What Makes APIs Hard to Learn? Answers from Developers. IEEE Software 26, 6 (2009).
[16]
Martin Robillard, Eric Bodden, David Kawrykow, Mira Mezini, and Tristan Ratchford. 2013. Automated API property inference techniques. IEEE Transactions on Software Engineering 39, 5 (2013).
[17]
Martin P. Robillard and Robert DeLine. 2011. A field study of API learning obstacles. Empirical Software Engineering 16, 6 (01 Dec 2011), 703--732.
[18]
Kristopher Sandoval. {n. d.}. Best Practices for API Error Handling. http://bit.ly/2E5xExh. ({n. d.}). {Online; accessed 20-Jul-2017}.
[19]
Anand Ashok Sawant, Romain Robbes, and Alberto Bacchelli. 2016. On the reaction to deprecation of 25,357 clients of 4+ 1 popular Java APIs. In Software Maintenance and Evolution (ICSME), 2016 IEEE International Conference on. IEEE, 400--410.
[20]
SM Sohan, Craig Anslow, and Frank Maurer. 2015. Spyrest: Automated restful API documentation using an HTTP proxy server (N). In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).
[21]
Mike Stowe. {n. d.}. API Best Practices: Response Handling. http://bit.ly/2nH77QN. ({n. d.}). {Online; accessed 28-Jun-2017}.
[22]
Jeffrey Stylos, Benjamin Graf, Daniela K Busse, Carsten Ziegler, Ralf Ehret, and Jan Karstens. 2008. A case study of API redesign for improved usability. In Visual Languages and Human-Centric Computing, 2008. VL/HCC 2008. IEEE Symposium on. IEEE, 189--192.
[23]
Philippe Suter and Erik Wittern. 2015. Inferring web API descriptions from usage data. In Third IEEE Workshop on Hot Topics in Web Systems and Technologies.
[24]
Pradeep Venkatesh, Shaohua Wang, Feng Zhang, Ying Zou, and Ahmed Hassan. 2016. WhatDo Client Developers Concern When Using Web APIs? An Empirical Study on Developer Forums and Stack Overflow. In IEEE International Conference on Web Services (ICWS).
[25]
Shaohua Wang, Iman Keivanloo, and Ying Zou. 2014. How do developers react to restful api evolution?. In International Conference on Service-Oriented Computing. Springer, 245--259.
[26]
Erik Wittern, Annie Ying, Yunhui Zheng, Julian Dolby, and Jim Laredo. 2017. Statically checking web API requests in JavaScript. In Proceedings of the 39th International Conference on Software Engineering. IEEE Press.
[27]
Erik Wittern, Annie Ying, Yunhui Zheng, Jim Laredo, Julian Dolby, Christopher Young, and Aleksander A Slominski. 2017. Opportunities in software engineering research for web API consumption. In Proceedings of the 1st International Workshop on API Usage and Evolution.

Cited By

View all
  • (2024)SCODA - Framework for Software Capability Representation and InspectionAI 2024: Advances in Artificial Intelligence10.1007/978-981-96-0348-0_9(111-123)Online publication date: 18-Nov-2024
  • (2023)Run-Time Prevention of Software Integration Failures of Machine Learning APIsProceedings of the ACM on Programming Languages10.1145/36228067:OOPSLA2(264-291)Online publication date: 16-Oct-2023
  • (2023)CiD4HMOS: A Solution to HarmonyOS Compatibility Issues2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00134(2006-2017)Online publication date: 11-Sep-2023
  • Show More Cited By

Index Terms

  1. An exploratory study on faults in web API integration in a large-scale payment company

        Recommendations

        Comments

        Please enable JavaScript to view thecomments powered by Disqus.

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        ICSE-SEIP '18: Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice
        May 2018
        336 pages
        ISBN:9781450356596
        DOI:10.1145/3183519
        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Sponsors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 27 May 2018

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. web API integration
        2. web engineering
        3. webservices

        Qualifiers

        • Research-article

        Conference

        ICSE '18
        Sponsor:

        Upcoming Conference

        ICSE 2025

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)40
        • Downloads (Last 6 weeks)5
        Reflects downloads up to 06 Jan 2025

        Other Metrics

        Citations

        Cited By

        View all
        • (2024)SCODA - Framework for Software Capability Representation and InspectionAI 2024: Advances in Artificial Intelligence10.1007/978-981-96-0348-0_9(111-123)Online publication date: 18-Nov-2024
        • (2023)Run-Time Prevention of Software Integration Failures of Machine Learning APIsProceedings of the ACM on Programming Languages10.1145/36228067:OOPSLA2(264-291)Online publication date: 16-Oct-2023
        • (2023)CiD4HMOS: A Solution to HarmonyOS Compatibility Issues2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00134(2006-2017)Online publication date: 11-Sep-2023
        • (2022)Towards a Fault Taxonomy for Microservices-Based ApplicationsProceedings of the XXXVI Brazilian Symposium on Software Engineering10.1145/3555228.3555245(247-256)Online publication date: 5-Oct-2022
        • (2021)A Systematic Review of API Evolution LiteratureACM Computing Surveys10.1145/347013354:8(1-36)Online publication date: 4-Oct-2021
        • (2021)Automatically identifying parameter constraints in complex web APIsProceedings of the 43rd International Conference on Software Engineering: Software Engineering in Practice10.1109/ICSE-SEIP52600.2021.00016(71-80)Online publication date: 25-May-2021
        • (2021)Module Integration Using Graph Grammars (MIGRATE)Formal Methods: Foundations and Applications10.1007/978-3-030-92137-8_6(87-103)Online publication date: 6-Dec-2021
        • (2020)Statically Checking REST API ConsumersSoftware Engineering and Formal Methods10.1007/978-3-030-58768-0_15(265-283)Online publication date: 14-Sep-2020
        • (2019)Monitoring-aware IDEsProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3338926(420-431)Online publication date: 12-Aug-2019
        • (2018)APIComposer: Data-Driven Composition of REST APIsService-Oriented and Cloud Computing10.1007/978-3-319-99819-0_12(161-169)Online publication date: 12-Sep-2018

        View Options

        Login options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media