2.4.2014

foto Tomáš Hofman

Tomáš Hofman
+420 777 634 660
tomas.hofman@hobrasoft.cz

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

Hobrasoft s.r.o. | Kontakt