U záznamov, ktoré podporujú prílohy, možno prílohy cez REST API vypisovať, zakladať aj mazať. Tento článok popisuje jednotlivé operácie vrátane práce s obrázkami a s logom v nastavení firmy.
Export prílohy
U záznamov, ktoré podporujú prílohy, možno zobraziť zoznam príloh takto:
/c/firma/adresar/12/prilohy
Metadáta jednej konkrétnej prílohy možno získať obvyklým spôsobom:
/c/firma/adresar/12/prilohy/75
Binárne dáta prílohy možno získať pomocou GET, súčasťou odpovede je aj správna hlavička Content-Type:
/c/firma/adresar/12/prilohy/75/content
Ak je príloha obrázkom, možno obdobným spôsobom získať aj náhľad (ak neexistuje, odpoveďou bude chyba 404):
/c/firma/adresar/12/prilohy/75/thumbnail
Import binárneho súboru
Prílohu možno tiež cez PUT založiť, musíte pritom zadať meno súboru a v hlavičke Content-Type poslať jeho typ:
PUT /c/firma/adresar/12/prilohy/new/název souboru
Content-Type: image/jpeg
Binárne dáta prílohy musia byť v tele požiadavky.
⚠️ Existujúcu prílohu nemožno meniť. V takom prípade je potrebné prílohu zmazať a znovu založiť.
Import cez XML/JSON
Je podporovaný aj import príloh cez XML (dáta musia byť zakódované opäť v Base64), má to však určité obmedzenia:
novú prílohu možno založiť iba ako súčasť iného objektu (nemôže byť koreňový tag)
meniť možno iba metadáta, dáta prílohy už nie
Ako endpoint použite inú URL adresu než pri importe binárneho súboru, napr.: /c/firma/faktura-vydana.xml.
Príklad XML
<winstrom>
<faktura-vydana>
<id>11925</id>
<prilohy>
<priloha update="ignore">
<id>ext:DPH-KONTROLA:faktura-vydana:11925</id>
<contentType>text/html</contentType>
<nazSoub>vies-CZ18239617-2023-01-19.html</nazSoub>
<typK>typPrilohy.ostatni</typK>
<content encoding="base64">PGh0bWw+PG...</content>
</priloha>
</prilohy>
</faktura-vydana>
</winstrom>
Príklad JSON
{
"winstrom": {
"faktura-vydana": {
"id": "11925",
"prilohy": {
"priloha": {
"id": "ext:DPH-KONTROLA:faktura-vydana:11925",
"contentType": "text/html",
"nazSoub": "vies-CZ18239617-2023-01-19.html",
"typK": "typPrilohy.ostatni",
"content@encoding": "base64",
"content": "PGh0bWw+PG..."
}
}
}
}
}ℹ️ Ak importujete XML prílohu, API sa automaticky prepne do komunikácie vo formáte XML (JSON hlavičku potom neberie do úvahy).
Export do XML
Obsah prílohy možno tiež exportovať priamo do XML, dáta sa exportujú zakódované v Base64 (<content encoding="base64">...</content>).
Prílohy možno pri prístupe cez REST API exportovať aj ako súčasť objektov, ku ktorým patria, vtedy je potrebné v URL uviesť parameter relations=prilohy.
Podpora obrázkov
Ak nahráte do ABRA Flexi prílohu vo formáte obrázka, je pridaná podpora pre generovanie náhľadov. Obrázok musí byť v jednom z týchto formátov:
image/jpegimage/gifimage/png
U objektov s prílohou je možné požiadať o primárny obrázok (ak neexistuje, odpoveďou bude chyba 404):
/c/firma/cenik/12/thumbnail.png
Je možné určiť veľkosť obrázka pomocou parametrov w a h, napríklad ?w=64&h=64.
Prílohy k nastaveniu
Nastavenie firmy obsahuje dve prílohy: logo a podpis a pečiatku. S nimi sa pracuje špeciálnym spôsobom.
Zistenie, či je logo pripojené
GET /c/firma/nastaveni/1/logo
Ak je logo pripojené, je vrátené presmerovanie na kanonickú URL prílohy (v tvare /c/firma/priloha/3), t. j. kód 303 a hlavička Location. Ak logo pripojené nie je, je vrátený kód 404.
Pripojenie loga
Ak nie je logo pripojené, možno ho pripojiť volaním PUT alebo POST (so správnou hlavičkou Content-Type):
PUT /c/firma/nastaveni/1/logo
Content-Type: image/jpeg
Binárne dáta loga musia byť ako obvykle v tele požiadavky. Úspech je označený kódom 201 a v hlavičke Location je URL novo vzniknutej prílohy.
⚠️ Rovnako ako pri prílohách nemožno pripojiť logo k nastaveniu, ak už nejaké logo pripojené je. V takej situácii je vrátený chybový kód 400.
Odstránenie loga
DELETE /c/firma/nastaveni/1/logo
Ak bolo logo v poriadku odstránené, je vrátený kód 200. Ak žiadne logo neexistovalo, je vrátený chybový kód 404.
ℹ️ S podpisom a pečiatkou sa pracuje úplne rovnako, len namiesto slova logo sa v URL použije podpis-razitko (teda napr. /c/firma/nastaveni/1/podpis-razitko).
