THESIS
2023
1 online resource (x, 44 pages) : illustrations (some color)
Abstract
An increasing number of Web services are now opening third-party interfaces to be integrated.
APIs are pre-defined interface functions designed to provide applications or
developers with the ability to access programs through fixed protocols without having
to access the source code or understand the details of the internal working mechanism.
RESTful style has become the mainstream format for API interfaces.
In this thesis, I propose a tool to automate the process of finding dependencies between
APIs. Unlike the current static parsing API specification tools, my tool includes both
static and dynamic ways. Through static parsing, I can get some simple dependencies
based on the relationships between HTTP verbs. More complex dependencies exist in
complicated web services, but it is difficul...[
Read more ]
An increasing number of Web services are now opening third-party interfaces to be integrated.
APIs are pre-defined interface functions designed to provide applications or
developers with the ability to access programs through fixed protocols without having
to access the source code or understand the details of the internal working mechanism.
RESTful style has become the mainstream format for API interfaces.
In this thesis, I propose a tool to automate the process of finding dependencies between
APIs. Unlike the current static parsing API specification tools, my tool includes both
static and dynamic ways. Through static parsing, I can get some simple dependencies
based on the relationships between HTTP verbs. More complex dependencies exist in
complicated web services, but it is difficult for us to get the dependencies between APIs
by static parsing only, so I add dynamic methods. When an API is run dynamically, I can
use the response information to confirm that the API is running successfully and extract
useful knowledge to help run other APIs. A new dependency is created when the required
parameters of an API depend on information obtained after another API runs successfully. Since the obtained dependencies are dynamically implemented, it is possible to be sure
that they are correct as well. To ensure the uniqueness of the information generated by
each API, this thesis determines the identifier of the response body and guarantees the
uniqueness of this information.
The experimental results show that my technique is advantageous in finding dependencies
in a redundant specification. I tested the open source Git service GitLab, as well
as Bitbucket and SpreeCommerce. For dependencies, my tool can find more and with
higher accuracy than the static RESTler parsing system. In terms of code coverage, it
outperformed both the native RESTler and the technologically up-to-date MOREST tool.
RESTation performs better when the SRO requires a longer dependency length.
Post a Comment