Ú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();