Naší snahou je, aby bylo REST API ABRA Flexi snadno použitelné pro vývojáře. Proto existuje režim, který zjednodušuje práci při použití Ruby on Rails, respektive Active Resource.
⚠️ Podpora Ruby on Rails je zatím experimentální.
Zapnutí režimu
Režim se zapíná parametrem ?mode=ruby v URL. Ve výstupním XML pak dostáváte výsledky ve tvaru, který Active Resource očekává, a zapne se podpora pro pluralizaci názvů evidencí (Invoice → Invoices):
# GET /invoices.xml?mode=ruby
Invoice.find(:all, :params => { :mode => 'ruby' })
Parametr mode zná jedinou hodnotu — malými písmeny ruby. Jakákoli jiná hodnota skončí chybou 400 s hlášením No enum constant …, takže i překlep se pozná okamžitě.
Co se změní ve výstupu
Běžný výstup má kořenový element winstrom:
<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<faktura-vydana>
<id>1</id>
</faktura-vydana>
</winstrom>
S parametrem ?mode=ruby se kořenový element pojmenuje podle evidence, takže odpověď odpovídá tomu, jak Active Resource mapuje kolekce na třídy:
<?xml version="1.0" encoding="utf-8"?>
<faktura-vydana version="1.0">
<faktura-vydana>
<id>1</id>
</faktura-vydana>
</faktura-vydana>
Anglické názvy evidencí
Některé evidence mají anglický alias, který lze v URL použít místo českého názvu. Bez parametru mode na něj server odpoví přesměrováním 301 na kanonickou adresu; s ?mode=ruby vrátí data přímo se stavem 200, což je pro Active Resource podstatné.
Alias v URL | Evidence |
|
|
|
|
|
|
|
|
|
|
|
|
🚨 Aliasů je jen několik a nejsou úplné ani konzistentní — pro většinu evidencí anglický název neexistuje a vrátí 404. V integracích proto vždy používejte české názvy evidencí; alias berte jen jako pomůcku pro Active Resource.
Úplný seznam evidencí i s jejich kanonickými názvy vrátí:
GET https://demo.flexibee.eu/c/demo/evidence-list.json
