Toto je DEMO stránka pre Car-Booker.eu -
objednávkový systém pre požičovne a predajne automobilov.
Viac o aplikácii Modul "REST API"
Modul "REST API" umožňuje autorizovanú komunikáciu aplikácie CarBooker s aplikáciami tretích strán. Príkladom môže byť prijatie objednávky z externého partnerského webu alebo načítanie štatistík za zvolené obdobie - počet a cena objednávok, logy apod.
Príklad odoslanie REST požiadavky
Každá API požiadavka odoslaná do aplikácie {booker} musí obsahovať autentifikačný kľúč a musí byť odoslaná správnou metódou (POST, PUT, GET ..) s platnými parametrami. V opačnom prípade vráti server chybu. Nasledujúci príklad vytvorí novú objednávku prijatím z externého webu:
// 1. krok - pripravíme vyzbierané údaje o zákazníkovi a objednávke
$postData = [
// povinný autentifikačný API kľúč
"xauth" => "Sd5f8_ERtT8-Po6E...",
// povinné údaje o zákazníkovi
"Customer" => [
"email" => "john.doe@gmail.com",
"phone" => "0905 123456",
"firstname" => "John",
"lastname" => "Doe",
"street_num" => "Toryská 123/a",
"zip" => "04011",
"city" => "Košice",
],
// povinné údaje o objednávke
"Order" => [
"car_pickup_datetime" => "2025-12-24",
"select_pickup_time" => "10:00",
"car_return_datetime" => "2025-12-28",
"select_return_time" => "16:00",
"select_pickup_place" => "address",
"car_pickup_city" => "Košice",
"car_pickup_street_num" => "Moldavská 123",
"car_pickup_zip" => "04011",
"select_return_place" => "same_as_pick",
"notes_by_customer" => "Prosím prezvoniť pred príchodom.",
],
// údaje o vozidle .. ak chýbajú, vytvorí sa "Žiadosť o cenovú ponuku"
"Car" => [
...
],
];
// 2. krok - odosielame dáta na API rozhranie aplikácie CarBooker (v PHP)
$options = [
"http" => [
"method" => "POST",
"timeout" => 5, // ak treba, upravíme nastavenia, napr. timeout 5 sekúnd
"content" => http_build_query($postData), // údaje objednávky
"header" => [
"Content-type: application/x-www-form-urlencoded; charset=utf-8",
],
],
];
// URL webu, kde beží naša aplikácia CarBooker, do ktorej odosielame objednávku
$url = "https://my-rent-car.site/api/order/create";
$errorMsg = $successMsg = "";
try {
// odošleme údaje
$ctx = stream_context_create($options);
$response = file_get_contents($url, false, $ctx);
// spracujeme odpoveď - vráti číslo novej objednávky, alebo zoznam chýb
if (!empty($response["errors"])) {
$errorMsg = implode(" ", $response["errors"]);
} elseif (!empty($response["orderId"])){
$successMsg = "OK - vytvorená nová objednávka ID={$response["orderId"]}.";
} else {
$errorMsg = "Neznáma chyba.";
}
} catch (\Exception $e) {
$errorMsg = $e->getMessage();
}
if (!empty($errorMsg)) {
exit("Chyba - objednávka nebola vytvorená - príčina: ".$errorMsg);
}