Všechny sbírky
Výukové články
API Ninja
API Ninja: Trénink 2/7 - Tvorba URL adresy
API Ninja: Trénink 2/7 - Tvorba URL adresy

V druhém tréninku se podíváme na tvorbu URL adresy pro API volání

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než týdnem

Získané schopnosti:

  • osvojení pojmů URL, port, doména, instance

  • znalost struktury adresy ABRA Flexi

  • základní parametry URL

Máme připravené testovací prostředí z prvního tréninku a nyní se můžeme pustit do stavby URL adresy, na které nalezneme potřebné zdroje. URL je anglická zkratka “Uniform Resource Locator”, v češtině tedy jednotná adresa zdroje. Znamená jednoznačnou adresu k požadovanému zdroji neboli daná URL adresa přesně specifikuje, kde se daný zdroj informací nachází.

Několik příkladů jsme si již ukázali v předchozím tréninku. Nyní si URL rozebereme trochu podrobněji tak, jak ji musí znát i Ninja učedník o půlnoci. URL Flexi má vždy pevnou strukturu, která je následující:

{server}/c/{identifikátor firmy}/{kód evidence}/{identifikátor záznamu}.{formát výstupu}

Nyní si popíšeme jednotlivé části URL adresy:

{server} - zde vystupuje server, na kterém je umístěno volané Flexi. Server lze volat formou IP adresy či doménového jména. Příklady mluví za vše:

1. cloudová adresa serveru:

2. adresa vlastního serveru:

  • zvolená IP u vás v síti či doménový název server (server.cz) a port libovolně přidělený vaším IT správcem

3. adresa lokální instalace (serverem je dané PC):

A co to /c/ v adrese? Toto je ve struktuře vždy nutné uvést, jelikož uvozuje umístění dat firem

{identifikátor firmy} - jednoznačně identifikuje danou účtovanou firmu v rámci instance. Jak ho zjistíme? Identifikátor firmy je vždy k nalezení v adresním řádku prohlížeče po přistoupení do firmy. My máme pro naše tréninky identifikátor firmy - ninja

Zkus to ověřit, učedníku, přihlaš se na https://developer.flexibee.eu:5434/ svým loginem

{kód evidence} - jedná se o jednoznačný identifikátor evidence, se kterou se chystáme pracovat. Například faktury vydané mají kód faktura-vydana. Důležitý je soupis všech možných evidencí zde: https://developer.flexibee.eu/c/ninja/evidence-list. Nás zajímá strojový název, což je kód evidence.

{identifikátor záznamu} - nyní už se dostáváme k identifikaci konkrétního záznamu v evidenci, identifikátor zjistíme v aplikaci ve sloupci ID. Jedná se o unikátní číslo záznamu v dané evidenci. Pod stejným ID nemohou být v evidenci dva záznamy.

{formát výstupu} - určuje, v jaké formě data získáme (XML, JSON, a další). Pokud však není uveden, při běžném zadání do webového prohlížeče budeme přesměrování na HTML, tedy webové rozhraní Flexi.

To nemůže být všechno. Vyhledávání faktur podle ID?

Další možnosti, jak získávat data

URL adresa lze samozřejmě ještě rozšířit

{server}/c/{identifikátor firmy}/{kód evidence}/({filtry}).{formát výstupu}?{parametry}

{filtry} - zajišťují nám, abychom mohli data filtrovat a získávat pomocí jiných podmínek, než na základě ID záznamu. Například filtr (varSym =’201800123’) zajistí získání záznamu na základě variabilního symbolu. Více si ukážeme v tréninku filtrování.

{parametry} - parametry nám dovolují data dále třídit, řadit či provádět jiné akce. Mezi nejzákladnější parametry patří detail, který určuje, kolik informací o daném záznamu chceme získat. Více si ukážeme v tréninku.

Teorie bylo dost, nyní se vrhneme na trénink!

Úroveň: Učeň

Na úrovni učeň si vyzkoušíme vytvořit několik jednoduchých adres, pro získání užitečných dat. Ve struktuře URL adresy existují ještě další možnosti. Některé z nich si nyní ukážeme.

Jednoduchou užitečnou URL může být adresa poskytující sumace v evidenci. K tomu slouží proměnná $sum. Například volání adresy https://developer.flexibee.eu/c/ninja/faktura-prijata/$sum, získáme přehled sumací v evidenci přijatých faktur.

Již víme, co jednotlivé části adresy znamenají. Vyzkoušej si vlastní volání, učedníku.

Na úrovni učeň si ještě ukážeme jednoduchý filtr. Vyzkoušíme vyfiltrovat pomocí některého z dostupných polí na faktuře. Bystrý učeň si jistě v předchozí teoretické části všiml filtrování přes políčko “varSym”. Kde zjistíme další pole? K tomu slouží “/properties” Na adrese https://developer.flexibee.eu/c/ninja/cenik/properties, zjistíme všechna dostupná pole v dané evidenci.

Úkol na závěr pro učedníka: Vyfiltrovat všechny objednávky od zákazníků za letošní rok.

Malá nápověda: Datum je nutné zadat ve formátu YYYY-MM-DD a nebo lze pro dnešní den použít kouzelná funkce now().

Úroveň: Bojovník

Jako API Bojovník musíme pokročit ještě hlouběji do možností API Flexi. Ukážeme si další speciální adresy.

První z nich je adresa https://developer.flexibee.eu/c/ninja/skladovy-pohyb/reports.xml. Na této adrese získáme soupis všech možných tiskových sestav pro danou evidenci. Jak tedy přes API stáhnout například dodací list? K tomu slouží parametr “report-name”, kterému předáme “reportId” z předchozí adresy.

Příkladem prozradíme všechno, bojovník to hravě zvládne sám.

Dokážeš získat PDF dodacího listu skladového pohybu, bojovníku?

Nápověda: na konci URL uveď ?report-name={správné ID reportu pro dodací list}

Některé evidence mají ve vazbě další evidence. Příkladem může být Ceník, který má k sobě navázány další evidence. Nejsnazší cesta, jak zjistit navázané evidence, je pomocí adresy https://developer.flexibee.eu/c/ninja/cenik/relations.xml. Pro uplatnění v praxi využijeme URL vazby v parametru “?relations={URL vazby, URL druhé vazby, ...}”.

Bojovník si již jistě představí využití, například, jak k ceníku zobrazit jeho skladové karty?

Otázkou zůstává, co když budu chtít zobrazit informace z evidence, která není přímo ve vazbě jako celek, ale pouze se na ní odkazuji některým z polí? Znovu se podívejme na adresu https://developer.flexibee.eu/c/ninja/faktura-vydana/properties - jedná se o pole, která jsou Typu proměnné “relation”. K získání informací o záznamu ve vazbě, při volání hlavní evidence, slouží parametr ?includes={cesta k záznamu, další cesta záznamu, ...}.

Ukážeme si příklad pro lepší pochopení. Chceme získat k fakturám bližší informace o odběrateli. Využijeme následující adresu:

Vyzkoušejte si další příklady, čeká nás finální úroveň tohoto tréninku.

Úroveň: Ninja

API Ninja je schopen přes API řídit data a sledovat chod Flexi. Umí se podívat i do nejtemnějších zákoutí Flexi prostředí. K tomu slouží několik adres. Od ostatních adres se liší tím, že se neodkazují na konkrétní firmu /c/{identifikátor firmy} ale na celou instanci.

Prvním z nich je adresa https://developer.flexibee.eu/status.xml, kde získáte informace o licencování, verzi a další servisní údaje o operačním systému a databázi.

Pro zvídavé průzkumníky, tyto údaje nelze požadavkem na API přepsat dle libosti :-)

Pokud Vás jako administrátora Flexi zajímají přihlášení uživatelé, naleznete je na adrese https://developer.flexibee.eu/status/session.xml. Celkový seznam všech uživatelů s přístupy do firem naleznete na adrese https://developer.flexibee.eu/a.xml

Poslední adresa, kterou si v tomto tréninku ukážeme, je seznam firem. Seznam dále obsahuje nejen potřebné ID firmy, ale i informaci o stavu firmy: https://developer.flexibee.eu/c.xml

Tušil jsi o těchto zákoutích Flexi, Ninjo?

Strukturu a tvorbu URL adresy jsme si prošli včetně jednoduchých příkladů. Nyní jsme připraveni na ostrý trénink o URL parametrech a filtracích, kde se zaměříme více na příklady bez nudné teorie.

Dostali jste odpověď na svou otázku?