5.2. Popis rozhraní
REST rozhraní je soubor jednotlivých služeb. Tyto služby umožňují:
zjišťování seznamu balíčků v digitálním archivu
zjišťování změn v balíčcích
vkládání požadavků na stažení balíčků
vkládání požadavků na stažení souborů (komponent) z balíčků
zjišťování stavu požadavků na stažení
stahování připravených výsledků
zjišťování stavu požadavků na změny balíčků
stahování výsledků požadovaných změn.
Pro přenos výsledků a vkládání požadavků na změny do digitálního archivu je určeno primárně navazující přenosové rozhraní.
V samostatné kapitole jsou uvedena doporučení pro implementaci.
5.2.1. OpenAPI
Podrobná definice rozhraní je popsána pomocí OpenAPI. Definice obsahuje specifikaci metod a podobu návratových JSON objektů.
Specifikace rozhraní ke stažení: openapi.yaml
- POST /download/aips
Stažení balíčků v poslední verzi.
Metoda umožňuje zahájení stahování jednoho nebo více balíčků v požadované podobě. Stahování balíčků je asynchronní a nejprve je nutné vložit tento požadavek na stažení.
Příprava dat pro stažení může trvat delší dobu a stav přípravy dat je možné zjistit pomocí metody batchStatus. Připravenou dávku lze následně stáhnout a to buď pomocí přímého volání nebo obzvlášť v případě většího objemu dat pomocí FileTransfer.
Výsledkem volání je identifikátor dávky, která bude na serveru připravena. Dávka je tvořena vždy sadou adresářů pojmenovaných shodně jako je identifikátor daného balíčku. V adresáři jsou umístěny soubory vztahující se k danému balíčku.
- Status Codes:
200 OK – Vrací identifikátor dávky ke stažení. Výslednou dávku je možné přenést službou FileTransfer.
403 Forbidden – Chyba stažení balíčku způsobená nedostatečným oprávněním. Případné upřesnění chybějícího oprávnění je uvedeno chybovém objektu.
404 Not Found – Chyba způsobená uvedením neplatné hodnoty parametru, obvykle chybným uvedením identifikátoru balíčku nebo požadovaným typem balíčku. V detailním popisu chyby jsou uvedeny další podrobnosti.
- POST /download/files
Stažení jednoho nebo více souborů z balíčku.
Metoda připraví dávkové stažení jednoho nebo více souborů z jednoho AIPu. Stahování souborů je asynchronní a nejprve je nutné vložit tento požadavek na jejich stažení.
Příprava dat pro stažení může trvat delší dobu a stav přípravy dat je možné zjistit pomocí metody batchStatus. Připravenou dávku lze následně stáhnout a to buď pomocí přímého volání nebo obzvlášť v případě většího objemu dat pomocí FileTransfer.
Výsledkem volání je identifikátor dávky, která bude na serveru připravena.
- Status Codes:
200 OK – Vrací identifikátor dávky ke stažení. Výslednou dávku je možné přenést službou FileTransfer.
403 Forbidden – Chyba stažení balíčku způsobená nedostatečným oprávněním. Případné upřesnění chybějícího oprávnění je uvedeno chybovém objektu.
404 Not Found – Chyba způsobená uvedením neplatné hodnoty parametru, obvykle chybným uvedením identifikátoru balíčku nebo požadovaným typem balíčku. V detailním popisu chyby jsou uvedeny další podrobnosti.
- GET /download/result/{batchId}
Stažení připravené dávky.
Metoda slouží pro stažení připravené dávky. Dávku je možné stahovat až když metoda getStaus vrátí, že je dávka dokončena (stav FINISHED).
V případě velkého objemu dat nebo i z jiných implementačních důvodů může být nutné výsledek stáhnout pomocí služby FileTransfer a nikoliv pomocí této metody. Tento stav je signalizován návratovým kódem 413.
- Parameters:
batchId (string) – Identifikátor dávky, která bude stažena
- Status Codes:
200 OK – Dojde k zahájení stahování výsledku. Ten je předán ve formě ZIP souboru v němž jsou uloženy jednotlivé soubory výsledku.
403 Forbidden – Chyba stažení balíčku způsobená nedostatečným oprávněním. Případné upřesnění chybějícího oprávnění je uvedeno chybovém objektu.
404 Not Found – Chyba způsobená uvedením neplatné hodnoty parametru, obvykle chybným uvedením identifikátoru balíčku nebo požadovaným typem balíčku. V detailním popisu chyby jsou uvedeny další podrobnosti.
413 Request Entity Too Large –
Chyba způsobená příliš velkým datovým objemem odpovědi.
K chybě může dojít při požadavku na přímé stažení balíčku nebo souboru. Pro získání požadovaných dat musí být v takovém případu využito dávkové API, které umožňuje přenos větších objemů dat a navazování přeušeného stahování.
- GET /download/status/{batchId}
Zjištění stavu zpracování dávky.
Metoda umožňuje po vložení požadavku, který vrací BatchId, zjistit stav zpracování dávky. Dle stavu lze následně provést stažení výsledku.
- Parameters:
batchId (string) – Identifikátor dávky jejíž stav je zjišťován
- Status Codes:
200 OK – Vrací informaci o stavu zpracování dávky. Připravený výsledek je možné stáhnout pomocí služby FileTransfer. V případě vrácení chybových stavů 403 a 404 se jedná o trvalé selhání požadavku a jeho příprava je již přerušena.
403 Forbidden – Chyba stažení balíčku způsobená nedostatečným oprávněním. Případné upřesnění chybějícího oprávnění je uvedeno chybovém objektu.
404 Not Found – Chyba způsobená uvedením neplatné hodnoty parametru, obvykle chybným uvedením identifikátoru balíčku nebo požadovaným typem balíčku. V detailním popisu chyby jsou uvedeny další podrobnosti.
- GET /ingest/result/{batchId}
Převzetí výsledku zpracování dávky
Metoda slouží pro převzetí výsledku zpracování dávky balíčků. Výsledek je možné převzít až když metoda getStaus vrátí, že je dávka dokončena (stav FINISHED).
- Parameters:
batchId (string) – Identifikátor dávky pro převzetí výsledku
- Status Codes:
200 OK – Výsledek zpracování jednotlivých předaných balíčků.
Chyba vložení způsobená nedostatečným oprávněním. Případné upřesnění chybějícího oprávnění je uvedeno chybovém objektu.
V případě této chyby nedošlo ke zpracování žádné části z vkládané dávky.
Chyba způsobená uvedením neplatné podoby vstupní dávky. V detailním popisu chyby jsou uvedeny další podrobnosti.
V případě této chyby nedošlo ke zpracování žádné části z vkládané dávky.
Výsledek zpracování dávky není dostupný.
K chybě může dojít v případě předčasného volání metody getResult. Metoda by měla být volána až po dokončení zpracování vstupní dávky indikovaném pomocí metody getStatus.
- GET /ingest/status/{batchId}
Zjištění stavu zpracování požadavku na aktualizaci balíčků.
Metoda umožňuje po vložení změnových balíčků zjistit stav jejich zpracování. Podle zjištěného stavu lze následně provést stažení výsledku.
- Parameters:
batchId (string) – Identifikátor dávky jejíž stav je zjišťován.
- Status Codes:
200 OK – Vrací informaci o stavu zpracování dávky. Připravený výsledek je možné stáhnout pomocí metody getResult. V případě vrácení chybových stavů 403 a 404 se jedná o trvalé selhání požadavku a jeho další zpracování je přerušeno.
Chyba vložení způsobená nedostatečným oprávněním. Případné upřesnění chybějícího oprávnění je uvedeno chybovém objektu.
V případě této chyby nedošlo ke zpracování žádné části z vkládané dávky.
Chyba způsobená uvedením neplatné podoby vstupní dávky. V detailním popisu chyby jsou uvedeny další podrobnosti.
V případě této chyby nedošlo ke zpracování žádné části z vkládané dávky.
- GET /updates
Zjištění seznamu dostupných balíčků a jejich změn v digitálním archivu.
Metoda umožňuje získat úplný seznam balíčků v digitálním archivu dostupných pro uživatele a sledovat změny v těchto balíčcích.
Povinným parametrem je maximální počet záznamů vrácených v odpovědi. Volitelným parametrem je identifikátor pro zjištění dalších balíčků a jejich změn.
- Query Parameters:
nextQuery (string) – Volitelný identifikátor dalšího dotazu. Jeho hodnota je vrácena jako výsledek předcházejícícho dotazu. Při prvním dotazu se parametr neuvádí.
pageSize (integer) – Maximální počet vrácených záznamů. (Required)
- Status Codes:
200 OK – Vrací seznam dostupných balíčků. Počet vrácených balíčků je nanejvýš počet uvedený v parametru pageSize. Server může vrátit nižší počet, než-li je hodnota pageSize. Pokud nejsou žádné balíčky a jejich změny dostupné, je vrácen prázdný seznam.
404 Not Found – Chyba způsobená uvedením neplatné hodnoty parametru je signalizována návratovým kódem 404 a chybovým objektem s detailním popisem.