Preskoči na glavno vsebino

Prílohy

Ako pracovať s prílohami

Avtor: Lenka Haringerová

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/jpeg

  • image/gif

  • image/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).

Ste s tem dobili odgovor na svoje vprašanje?