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).