Validace a obsluha chyb¶
Validace dat¶
Při ukládání proběhne validace se třemi úrovněmi závažnosti:
error (chyba) — záznam kvůli ní nejde uložit, celá operace je zrušena.
warning (varování) — problém nastal, ale záznam byl uložen.
info (informace) — doplňující informace, záznam byl uložen.
Při chybě se zpracování okamžitě zastaví. U varování a informací proběhne
kompletní import a všechny výsledné stavy se vrátí najednou. Chcete-li, aby
i varování zabránilo uložení, přidejte ?fail-on-warning=true. Pro
ověření bez uložení použijte ?dry-run=true (viz Sestavování požadavků).
Ukázka odpovědi s varováním a informací:
<winstrom version="1.0">
<success>true</success>
<result>
<id>105</id>
<warnings>
<warning for="radekDph">Záznam nemá vyplněn řádek DPH a proto nebude doklad zaúčtován.</warning>
</warnings>
<infos>
<info>Došlo k automatickému výběru výrobního čísla.</info>
</infos>
</result>
<result><id>103</id></result>
</winstrom>
Atribut for u <warning> odkazuje na pole, kterého se zpráva týká.
Obsluha chyb — HTTP stavové kódy¶
Kód |
Význam |
|---|---|
200 OK |
Operace proběhla úspěšně. |
201 Created |
Záznam byl vytvořen; hlavička |
304 Not Modified |
Záznam nebyl změněn (v kombinaci s |
400 Bad Request |
Špatný požadavek, typicky PUT odkazující na neexistující objekt. |
401 Unauthorized |
Je nutné se přihlásit. |
402 Payment Required |
Cílový systém nemá aktivované REST API pro zápis (čtecí operace vrací místo toho 404). |
403 Forbidden |
Uživatel nemá oprávnění, nebo to neumožňuje licence. |
404 Not Found |
Záznam (evidence nebo konkrétní záznam) nenalezen. |
405 Method Not Allowed |
Použita nepovolená metoda (např. POST tam, kde je povoleno jen GET). |
406 Not Acceptable |
Cílový formát není nad daným zdrojem podporován (např. export adresáře jako ISDOC). |
500 Internal Server Error |
Vnitřní chyba serveru — vždy chyba v kódu AbraFlexi, hlaste podpoře. |
Ukázka chybové odpovědi:
<?xml version="1.0"?>
<winstrom version="1.0">
<success>false</success>
<result>
<id>105</id>
<error>Je očekáváno číselné ID, ale 'null' není číslo</error>
</result>
</winstrom>
Formát chybové zprávy je shodný s formátem validačních zpráv výše.