1. Open API – Technical Detail DataBase SELECT city FROM database.table Where name = $name Data access Layer Server application servlet Servlet(HttpRequest req, HttpResponse res){ String name = req.getName; String city = serverApp.getCityFor(name); res.setcity = city; return res; } SQL API , e.g. in this case GetCity API URL Request e.g. http://api.users.com/getcity?name=Remko%20Caprio Response e.g. in XML format <response> <name>Remko Caprio</name> <city>New York City</city> </response> database.table WORLD WIDE WEB SciVerse App GetCityForResearcher RequestHandler GetCityForStrangeFigure GetCityForDog serverApp.getCityFor(name); Id Name City 1 Remko Caprio New York City 2 Albert Einstein New York City
2. Open API – Technical Detail API = Application Programming Interface An API lets an application make a request to retrieve specific data, e.g. In the previous slide: GetCity API. Often an API lets the developer filter the data request, e.g. http://api.users.com/getcity?name=remko%20caprio Why OPEN API? Functionally it means nothing more than that it is Open to use for any one. Technically, it refers to a set of protocols that are used. The REST protocol describes the rules an application needs to comply to in order to retrieve open data. These rules have to do with authorization and authentication of requests. An application developer must register their application at the provider of the open data, who has made their data available via an open API. The developer then gets an API Key that allows the provider to uniquely identify the application that was registered to use a specific open API, e.g. the GetCity API on the previous slide. This authorization process is described in a protocol called OAuth. For authentication of a session, to prevent malicious hacking, another requirement could be to use so called security tokens or authToken .