Automating the Use of Web APIs through Lightweight Semantics
Web services have already achieved a solid level of acceptance and play a major role for the rapid development of loosely-coupled component-based systems, overcoming heterogeneity within and between enterprises. Current developments in the world of services on the Web are marked by the proliferation of Web APIs and Web applications, commonly referred to as RESTful services, which show high potential and growing user acceptance. Still, despite the achieved progress, the wider adoption of Web APIs is hindered by the fact that their implementation and publication hardly follow any standard guidelines or formats. REST principles are indeed a good step in this direction but the vast majority of the APIs do not strictly adhere to these principles. As a consequence, in order to use them, developers are obliged to manually locate, retrieve, read and interpret heterogeneous documentation, and subsequently develop custom tailored software, which has a very low level of reusability. In summary, most tasks during the life-cycle of services require extensive manual effort and applications based on existing Web APIs suffer from a lack of automation.
This tutorial introduces an approach and a set of integrated methods and tools to address this drawback, making services more accessible to both experts and non-expert users, by increasing the level of automation provided during common service tasks, such as the discovery of Web APIs, their composition and their invocation. The tutorial covers i) the conceptual underpinnings, which integrate Web APIs with state of the art technologies from the Web of Data and Semantic Web Services; ii) the presentation of an integrated suite of Web-based tools supporting service users; iii) and hands-on examples illustrating how the tools and technologies can help users in finding and exploiting existing Web APIs.