|Title||How Composable is the Web? An Empirical Study on OpenAPI Data model Compatibility|
|Publication Type||Conference Paper|
|Year of Publication||2022|
|Authors||Serbout, S., C. Pautasso, and U. Zdun|
|Conference Name||IEEE World Congress on Services (ICWS Symposium on Services for Machine Learning)|
|Conference Location||Barcelona, Spain|
|Keywords||API Analytics, empirical study, mashups, OpenAPI, Web APIs|
Composing Web APIs is a widely adopted practice by developers to speed up the development process of complex Web applications, mashups, and data processing pipelines. However, since most publicly available APIs are built independently of each other, developers often need to invest their efforts in solving incompatibility issues by writing ad-hoc glue code, adapters and message translation mappings. How likely are Web APIs to be directly composable?
The paper presents an empirical study to determine the potential composability of a large collection of 20,587 public Web APIs by verifying their schemas' compatibility. We define three levels of data model elements compatibility -- considering matches between property names and/or data types -- which can be determined statically based on API descriptions conforming to the OpenAPI specification. The study research questions address: to which extent are Web APIs compatible; the average number of compatible endpoints within each API; the likelihood of finding two APIs with at least one pair of compatible endpoints.
To perform the analysis we developed a compatibility checker tool which can statically determine API schema compatibility on the three levels and find matching pairs of API responses which can be directly forwarded as requests to the same or other APIs. We run the tool on a dataset of 751,390 request and response message schemas extracted from publicly available OpenAPI descriptions.
The results indicate a relatively high number of compatible APIs when matching their data models only on the level of their elements' data type. However, this number gets lower narrowing the scope to only the ones handling data objects having identical properties name. The average likelihood of finding two compatible APIs with both matching property names and data types reaches 21%. Also, the number of compatible endpoints within the same API is very low.
Submitted by cp on