OmniVoke is a framework that aims to automating the invocation of generic Web APIs. The framework provides a unique entry point for the invocation of most Web APIs that can be found on the Web. The framework thus abstracts away the heterogeneities of different APIs and consequently eliminates the need for developing a custom tailored client per Web API. The framework relies on non-intrusive semantic annotations of HTML pages describing Web APIs, in order to capture both their semantics as well as the information necessary to carry out their invocation.
The framework is implementated following RESTful principles to simplify its use and to adequately exploit the Web infrastructure for scalability. It includes a RESTful interface enabling the invocations as well as the monitoring or post-mortem analysis of APIs execution by publishing associated artifacts generated or used during the interaction with remote APIs, such as messages exchanged, etc.
Despite their increasing popularity, Web APIs are most often described solely through HTML Web pages that are thought for humans and pose outstanding difficulties for their automated identification and interpretation in order to support, for example, automated Web API discovery and invocation. The use of Web APIs still requires therefore extensive manual effort, which involves developing custom-tailored client software.
The platforms that provide machine-readable metadata about APIs, thus enabling the auto-generation of client software, such as the Google APIs Discovery Service and or the Mashery API test invocation. , support only a predefined set of APIs and provide very limited coverage
Automating the invocation of Web APIs, as to their other tasks, rely on semantic extensions to service properties. Minimal Service Model is a simple RDF(S) ontology that was designed to capture the core semantics of both “classical ”Web services and Web APIs in a common model. In its initial design, it provides supports for service publishing and discovery. Yet, it permit extensions when such a need arises, such as invocation. The Extended Minimal Service Model, with which OmniVoke works, extends the initial model with invocation-specific service descriptions. In particular, the model define input data grounding, which specifies whether the input values are transmitted as part of the URI, HTTP headers or the HTTP request message body (applicable to HTTP POST and PUT requests), as well as the message format when input is transmitted as message body.
It is important to point out that a majority the Web APIs require some form of authentication featured by three main characteristics, i.e. the required credentials, the used authentication protocol, and the way of sending the authentication information. We develop an authentication ontology that enables the annotation of authentication information as part of a semantic Web API description so that authentication can be seamlessly handled by OmniVoke.