Automatically Identifying Parameter Constraints in Complex Web APIs

A Case Study at Adyen

Conference Paper (2021)
Author(s)

Henk Grent (Adyen B.V.)

Aleksei Akimov (Adyen B.V.)

Maurício Aniche (TU Delft - Software Engineering)

Research Group
Software Engineering
Copyright
© 2021 Henk Grent, Aleksei Akimov, Maurício Aniche
DOI related publication
https://doi.org/10.1109/ICSE-SEIP52600.2021.00016
More Info
expand_more
Publication Year
2021
Language
English
Copyright
© 2021 Henk Grent, Aleksei Akimov, Maurício Aniche
Research Group
Software Engineering
Pages (from-to)
71-80
ISBN (print)
978-1-6654-3869-8
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Web APIs may have constraints on parameters, such that not all parameters are either always required or always optional. Moreover, the presence or value of one parameter could cause another parameter to be required, or parameters could have restrictions on what kinds of values are valid. Having a clear overview of the constraints helps API consumers to integrate without the need for additional support and with fewer integration faults. We made use of existing documentation and code analysis approaches for identifying parameter constraints in complex web APIs. In this paper, we report our case study of several APIs at Adyen, a large-scale payment company that offers complex Web APIs to its customers. Our results show that the documentation- and code-based approach can identify 23% and 53% of the constraints respectively and, when combined, 68% of them. We also reflect on the current challenges that these approaches face. In particular, the absence of information that explicitly describes the constraints in the documentation (in the documentation analysis), and the engineering of a sound static code analyser that is sensitive to data-flow, maintains longer parameter references throughout the API's code, and that is able to symbolically execute the several libraries and frameworks used by the API (in the static analysis).

Files

License info not available