2.4.2014
Aplikace Deko je postavena na distribuované databázi CouchDB, která ji dává neobyčejnou pružnost při použití v nejrůznějších podmínkách. Ať již je vaše podnikátní postaveno jako one-man-show, nebo jako kooperace dvou, či na spolupráci velkého týmu, vždy vám poskytne vše co k práci potřebujete.
Co když ale potřebujete data z aplikace Deko propojit s jinými, již zavedenými systémy, nebo třeba s firemním webem nebo intranetem? I na to jsme mysleli a proto vzniklo Deko API.
Deko API je poměrně jednoduchá PHP knihovna, která vám umožňuje připojit data uložená v CouchDB k jiným datovým zdrojům či vlastním aplikacím. API je postaveno objektově a pro jeho běh je potřeba PHP ve verzi 5.3 a vyšší.
Pro začátek si pojďme ukázat jak se dostat k přehledu projektů na nejvyšší úrovni (tedy v tzv. rootu). Základem všeho je stáhnout si Deko API do nějakého adresáře (například libs). Toho dosáhneme například příkazem verzovacího systému Git:
git clone https://github.com/hobrasoft-cz/deko-api.git
Nepoužíváte-li Git, lze si z našeho repozitáře na GitHubu stáhnout i ZIP soubor obsahující totéž.
Samotné použití je poměrně přímočaré a vypadá přibližně takto:
<?php include_once('libs/deko-api/php/Api.php'); $configuration = array( // databáze se jmenuje deko 'database' => 'deko', // databázovy stroj běží lokálně 'host' => 'localhost', // databázový uživatel, který může číst se jmenuje dekouser 'user' => 'dekouser', // je zabezpečen nějakým heslem 'password' => 'Dek0Pa5sw0rd' ); // vytvoříme instanci Deko API $api = new Api($configuration); try { // přihlásíme se do databáze $api->login(); // načteme root projekt $rootProject = $api->get('root'); // načteme všechny podprojekty root projektu $rootProject->loadProjects(); // projdeme projekty a vypíšeme jejich jména foreach ($rootProject->projects as $id => $project) { echo $project->name.'<br>'; } } catch (ApiException $e) { // když se něco nepovede, dáme o tom vědět echo $e->getMessage(); } ?>
Prosté, že? Obdobným způsobem můžeme vypsat i další typy dokumentů, které jsou v projektu uloženy, jako jsou například pracovní výkazy. Ty vypíšeme takto:
$rootProject->loadTimesheets(); foreach ($rootProject->timesheets as $id => $timesheet) { echo $timesheet->name.'<br>'; }
Podrobnosti lze najít v dokumentaci API.
To by pro tentokrát stačilo. Příště si ukážeme něco složitějšího. Do té doby se můžete inspirovat webovým rozhraním, které zpřístupňuje našim zákazníkům pracovní výkazy (jedná se o ukázkový projekt).