Úvod
Systém Webooker disponuje rozsáhlým programátorským rozhraním API. API je typu REST a proto ho lze velmi jednoduše používat prakticky ze všech jazyků nebo i z vašich webových stránek.
Co budete potřebovat
Pro vyzkoušení API je nejlépe použít buďto CURL popřípadě populární program Postman. Dále budete potřebovat založit v systému Webooker uživatele, kterého budete používat k přístupu do API. Pozor, nepoužívejte uživatele s příliš rozsáhlými právy, hrozí, že si rozbijete data. Doporučujeme používat buďto roli uživatel, nebo vlastní roli s omezenými právy.
První požadavek
Nejdříve zkusíme získat seznam semestrů. Bude to dotaz typu GET na adresu: https://test.webooker.eu/Api/Semesters/Get. Slovo test nahraďte názvem vašeho systému. Pro vyzkoušení rozhraní můžete použít adresu se slovem test.
curl -X GET \ https://test.webooker.eu/Api/Semesters/Get \ -H 'accept: application/json' \ -H 'apipassword: g9E5c9U4' \ -H 'apiusername: api.user' \ -H 'cache-control: no-cache' \ -H 'content-type: application/json'
V hlavičce dotazu musí být apiusername a apipassword, kde uvedete uživatele a jeho heslo. Výsledkem dotazu bude seznam semestrů, které jsou otevřeny pro zápis ve formátu JSON:
[ { "id": 21054, "name": "školní rok 2017/2018", "description": "Pokud potřebujete pomoci s výběrem kurzů, kontaktujte prosím Petru Brabcovou na tel. 728 678 089", "startDate": "2017-09-01T00:00:00", "endDate": "2018-06-29T00:00:00", "active": true, "noOfStudyWeeks": null, "openForRegistration": true, "showInAttendance": true }, { "id": 21068, "name": "šk rok Ošatka 17/18", "description": "šk rok Ošatka 17/18", "startDate": "2017-09-01T00:00:00", "endDate": "2018-06-30T00:00:00", "active": false, "noOfStudyWeeks": null, "openForRegistration": true, "showInAttendance": true }, { "id": 20814, "name": "Rok 2016/2017", "description": "Pokud potřebujete pomoci s výběrem kurzů, kontaktujte prosím Petru Brabcovou na tel. 728 678 089.", "startDate": "2016-09-01T00:00:00", "endDate": "2017-08-31T00:00:00", "active": false, "noOfStudyWeeks": null, "openForRegistration": true, "showInAttendance": true } ]
Stejný příklad v PHP
<?php $request = new HttpRequest(); $request->setUrl('https://test.webooker.eu/Api/Semesters/Get'); $request->setMethod(HTTP_METH_GET); $request->setHeaders(array( 'cache-control' => 'no-cache', 'apipassword' => 'g9E5c9U4', 'apiusername' => 'api.user', 'accept' => 'application/json', 'content-type' => 'application/json' )); try { $response = $request->send(); echo $response->getBody(); } catch (HttpException $ex) { echo $ex; }
Stejný příklad v C#
var client = new RestClient("https://test.webooker.eu/Api/Semesters/Get"); var request = new RestRequest(Method.GET); request.AddHeader("cache-control", "no-cache"); request.AddHeader("apipassword", "g9E5c9U4"); request.AddHeader("apiusername", "api.user"); request.AddHeader("accept", "application/json"); request.AddHeader("content-type", "application/json"); IRestResponse response = client.Execute(request);
Stejný příklad v Python (v3)
import http.client conn = http.client.HTTPSConnection("test.webooker.eu") headers = { 'content-type': "application/json", 'accept': "application/json", 'apiusername': "api.user", 'apipassword': "g9E5c9U4", 'cache-control': "no-cache" } conn.request("GET", "/Api/Semesters/Get", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
Stejný příklad v JAVA
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://test.webooker.eu/Api/Semesters/Get") .get() .addHeader("content-type", "application/json") .addHeader("accept", "application/json") .addHeader("apiusername", "api.user") .addHeader("apipassword", "g9E5c9U4") .addHeader("cache-control", "no-cache") .build(); Response response = client.newCall(request).execute();