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