Existence služby a vazba na registr
Existence služby
Existence webové služby v dané aplikaci systému flexideo je dána jejím jedinečným jménem ($nazevAkce) a výskytem složky s popisem služby. Popis služby slouží zároveň jako podklad pro zpracování požadavků na tuto službu.
Vedle pojmenovaných služeb existuje i "služba" univerzální, která funguje pomocí SOAP obálek předávajících standardní XML protokol flexideo serveru.
Podklady pro pojmenovanou službu jsou na webovém sídle ve složce:
[web:]/shared/actions/_transforms/{$podslozkaAkce}
Podsložka akce je uložena v registru akcí. Samotná webová služba je volána pomocí následujícího URL:
https://{flexideo}/soap/{$typVolani}[/{$nazevAkce}]
v postové části pak vždy musí být XML požadavek odpovídající specifikaci SOAP (konkrétně: http://schemas.xmlsoap.org/soap/envelope/). Proměnná $typVolani může nabývat následujících hodnot:
-
service -
table -
form
Server musí zajistit jednu z těchto hodnot. Pokud dojde k chybě, měl by server vrátit soap fault dle kategorie C (viz. řešení chyb). Typ volání je určující pro výběr šablony. Pokud jde o volání typu form, pak je použita jiná šablona než ve dvou zbývajících případech (viz. popis substepu).
[web:]/schemas/protocol.wsdl
jehož součástí je i schema, jež je též samostatně dostupné v souboru:
[web:]/schemas/protocol.xsd
Toto schema je prozatím jen základní a neobsahuje popis jednotlivých požadavků, nicméně je funkční a to díky použití definice xsd:any.
Viz. též popis formátů na vstupu a výstupu akcí zde.
Vazba na registr
Ke spuštění služby však nestačí její existence. Musí být též povolena v registru akcí obdobně, jako to ověřuje add-on. V případě služeb je však situace mírně modifikována v tom, že URL volání služby přesně uvádí, jaká akce má být provedena a retistr akcí slouží pouze k ověření dostupnosti pro uživatele, který o provedení žádá (vč. anonymního, který má pevně přidělenu jedinou roli).
Podřízené stránky
Skladba ověřovacího dotazu
Ověřování dostupnosti v registru probíhá na základě dotazu s třemi proměnnými - první dvě jsou id uživatele a id role, třetí pak samotný název akce, která je požadována.
Umístění popisu služby
Výše zmíněný údaj sttn_trnfld určuje obsah hodnoty $podslozkaAkce, která se skládá z názvu podsložky akce a podsložky buildu vzájemě oddělené běžným lomítkem. Rovněž je zaručeno, že obsahuje pouze znaky anglické abecedy, číslice, podtržítka a pomlčky:
REST API
REST obecně má mít charakter orientovaný na data, nikoli na procedury. Ve flexideo tento přístup úplně třeba není, protože pomocí HTTP protokolu a XML požadavkům je možné s daty pracovat i v jiných klientech. Celý XML protokol flexideo je defakto API orientované na data. Cílem tedy není toto nahradit. Cílem je nabídnout jednodušší API pro provozované akce.