--- tags: DOG --- # **DOG Anonymizer API** `v1.4.0` > API slouží pro Anonymizaci PDF pomocí grafických bloků, jeho vyčištění od metadat a jeho převedení do obrázku vloženého do PDF. --- ## **Změny ve verzích** ### **v1.4.0** #### **Přidáno** * Možnost vybrat stránky určené k anonymizace a exportovat do výsledného dokumentu jen ty pomocí parametru `page[]` ### **v1.3.0** #### **Přidáno** * Možnost ovlivnit kvalitu výsledného dokumentu ### **v1.2.0** #### **Přidáno** * Možnost anonymizovat soubor bez využití DMS. * Akceptace `area[].color` s i bez úvodního znaku `#` --- ### **Umístění API** #### **TEST** prostředí * Lokální síť: https://dog.test.ux.bee.corp/api/v1 * Externí zóna: https://apitest.bohemiaenergy.cz/dog #### **PROD** prostředí * Lokální síť: https://dog.bee.corp/api/v1 * Externí zóna: https://api.bohemiaenergy.cz/dog ### **Ověření přístupu k API** Ověření je řešeno pomocí `API-KEY` vloženého do hlavičky * `Authorization: Bearer <API-KEY>` V případě použití přístupu z externí zóny, je nutné ještě navíc přístupový `PROXY-KEY` pro `Proxy` umístěný do hlavičky * `X-APP-KEY: <PROXY-KEY>` ### **Vysvětlivky** * ==*== - povinné položky * [color=#ff4500] - další informace na konci dokumentu v Příloze --- ## **Způsob zpracování chyb** #### **V případě jakékoliv chyby je vráceno například:** ```json= { "intID": "b59fb26d-89df-4fea-9560-0dc3379eda82", "response": { "error": { "code": "MISSING_MANDATORY_DATA", "message": "Missing mandatory nodes: entity", "data": {} } } } ``` #### **Popis:** * **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku * **response** `object` - objekt s tělem odpovědi * **error** `object` - objekt s tělem chyby * **code** `string` - označení chyby, strojově zpracovatelný kód * **message** `string` - doplňující popis chyby, většinou předávaná hodnota z dalších systémů nebo lidsky čitelná podoba chyby * **data** `object` - další strojově zpracovatelné detaily chyby ### **Seznam kódů** | Code | Message | Data | Popis | | --------------------------- | -------------------------------------- |:----:| ----- | | `INVALID_INPUT_JSON` | Chyba z parseru | - | Vstupní data nejsou validní JSON formát | | `MISSING_MANDATORY_DATA` | List chybějících polí vstupních dat | - | Kontrola vstupních dat, kontrola povinných položek a jejich struktury, případně validita stupních dat | | `INVALID_INPUT_FILE_FORMAT` | | - | Chyba MIME TYPE vstupních souborů | | `DMS_INTERNAL_ERROR` | Přeposlaná chyba z DMS | - | Vnitřní chyna na strane DMS | | `DOG_ANONYMIZER_INTERNAL_ERROR` | | - | Vnitřní chyba DOG Anonymizer | **Způsob reportování chyb je u všech endpointů stejný. Dále nebude popisovaný.** --- ## **dog://anonymize/pdf** > Anonymizace dokumentu PDF pomocí grafických bloků, jeho očištění od metadat a převedení do obrázku vloženého do PDF. **Metoda:** `POST` \ **URL:** `/anonymize/pdf` \ **Tělo dotazu:** `application/json` \ **Tělo odpovědi:** `application/json` #### **Příklad:** ```json= { "area": [ { "page": 1, "x1": 55, "y1": 8, "x2": 190, "y2": 33, "color": "FF0000", "type": "rect" }, { "x1": 10, "y1": 58, "x2": 194, "y2": 200 } ], "page": [ { "from": 1, "to": 2 } ], "document": { "quality": 75, "ppi": 144 }, "file": { "dms": { "name": "", "xml": "" }, "data": "data:application/pdf;base64,JVBERi0xLjcKJeLjz9MKMjIgMCBvYmo..." } } ``` #### **Popis:** * **area** ==*== `array of objects`- pole objektů jednotlivých anonymizačních elementů * **page** `int` [1] - strana dokumentu, kam bude anonymizační element vykreslen * **x1** `float` - vodorovná souřadnice levého horního rohu elementu od levé hrany dokumentu v `mm` * **y1** `float` - svislá souřadnice levého horního rohu elementu od horní hrany dokumentu v `mm` * **x2** `float` - vodorovná souřadnice pravého dolního rohu elementu od levé hrany dokumentu v `mm` * **y2** `float` - svislá souřadnice pravého dolního rohu elementu od horní hrany dokumentu v `mm` * **color** `string` ["#000000"] - barva elementu v HTML kódu * **type** `string` ["rect"] - typ elementu - `rect`: obdélník (zatím není podpora jiných typů elementů) * **page** `array of objects` - pole objektů s požadovaným listem stránek, které jsou požadovány do výsledného dokumentu, když není vyplněno, automaticky se bere celý dokument * **from** `int` [1] - od které stránky anonymizovat * **to** `int` [0] - do které stránky anonymizovat, pokud je nula, tak je to bez omezení až do konce dokumentu * **document** `object` - globální nastavení pro dokument * **quality** `uint` [75] - kvalita výsledných obrázků v dokumentu po anonymizaci * **ppi** `float64` [144] - points per inch * **file** ==*== `object` - definice objektu se souborem určeným k podpisu * **dms** `object` - objekt popisující soubor pro uložení do DMS * **name** `string` - název souboru jak bude uložen do DMS * **xml** `string` - XML metadata, obsah elementu \<v3:xmlFileAtts> při SOAP volání DMS * **data** `string` - data mimetype s base64 souborem, akceptace pouze `application/pdf` #### **Poznámky:** V případě, že `file.dms.name` a `file.dms.xml` není vyplněno, nedojde k uložení do DMS. Pro úspěšné uložení do DMS je nutné zajistit XML data od správce DMS a zajistit práva na daný typ souboru pro DOG. V případě, že chceme anonymizovat jen jednu stránku, je nutné do page[].From a page[].To dát stejnou hodnotu. #### **Odpověď:** ```json= { "intID": "9e584f06-1b80-4752-bb55-ab6f0df95ea5", "response": { "file": { "dms": 3367441, "version": 1, "data": "" } } } ``` v budoucí verzi bude upraveno na: ```json= { "intID": "9e584f06-1b80-4752-bb55-ab6f0df95ea5", "response": { "file": { "dms": { "id": 3367441, "version": 1 }, "data": "" } } } ``` #### **Popis:** * **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku * **response** `object` - objekt s tělem odpovědi * **file** `object` - objekt souboru * **dms** `object` - objekt souboru v DMS * **id** `int` - ID DMS souboru * **version** `int` - Verze souboru v DMS * **data** `string` - v případě, že nebylo použito DMS tak bude vrácen soubor v BASE64 přímo