Oracle APEX má mnoho možností a využití. Jednou z nich, je například hosting webových služeb včetně databáze – a samozřejmě zdarma. V tomto článku vám poradím, jak takovou webovou službu vytvořit a implementovat například do Android aplikace.
Vytvoření webové služby je velmi jednoduché. Pokud již máte v APEXu jakékoliv databázové objekty, tabulky, zkrátka nějaký obsah webových aplikací, tak je webové služby mohou snadno využívat. Včetně všech package a procedur.
S Oracle APEX můžete produkovat jednoduchou GET metodu s výběrem z tabulky, ale také komplikovanější POST službu s autorizací přes časově omezený, generovaný token.
V následujícím příkladu bych Vám rád ukázal, jak vytvořit GET službu, která bude vracet string (datový typ).
Poté, co vytvoříte, můžete pokračovat templatem — ty jsou pro jednotlivé konce webové služby.
Založil jsem GET metodu, která bude vracet ‚testovací string‘ a je dostupná na adrese https://apex.oracle.com/pls/apex/apexws/adnroid/getString
Nyní službu zkusím zavolat a uvidíme, co nám vrátí. Je možné použít jakéhokoliv klienta pro webové služby. V našem příkladu jsem použil CocoaRestClient.
Dalším krokem je modifikování query metody. Zde se pokusím vrátit všechna jména zaměstnanců z tabulky, kterou jsme vytvářeli pro apku Zaměstnanci.
Úprava webové služby a volání vypadá po úpravách takto.
To bylo velmi jednoduché. Nyní si ukážeme POST metodu. Pomocí jí se pokusíme změnit jméno některého ze zaměstnanců. Upozorňuji ale dopředu, že u této metody je potřeba znát alespoň základy JavaScript Object Notation neboli JSON a programování. Pokud netušíte o čem mluvím, můžete používat jednodušší metodu GET.
To bylo velmi jednoduché. Nyní si ukážeme POST metodu. Pomocí jí se pokusíme změnit jméno některého ze zaměstnanců. Upozorňuji ale dopředu, že u této metody je potřeba znát alespoň základy JavaScript Object Notation neboli JSON a programování. Pokud netušíte o čem mluvím, můžete používat jednodušší metodu GET.
Postup je stejný jako s metodou GET. Pro parsování (syntaktickou analýzu) JSONu použiji apex_json. V něm potřebuji změnit následující: body (JSON ,který pošlu) z typu BLOB na CLOB. K tomu použiji funkci blob_to_clob, kterou jsme si již ukazovali a naleznete ji zde a spustíte ji jako skript v SQL části apexu.
Postup je stejný jako s metodou GET. Pro parsování (syntaktickou analýzu) JSONu použiji apex_json. V něm potřebuji změnit následující: body (JSON ,který pošlu) z typu BLOB na CLOB.
Pro status a content musíte ještě nastavit parametry dole v tabulce.
Parametry by měly být typu URL. Pokud byste použili header služba by nefungovala. Metodu GET jsem upravil, tak aby vracela i ID zaměstnance. Nyní se podívejme jaká mají zaměstnanci jména a pokusme se je novou POST metodou změnit.
Nyní ukážu použití v praxi. Implementuji volání služby do Android aplikace. Výsledek poté zkontroluji v APEX aplikaci, v tabulce zaměstnanci.
Využití v mobilních aplikacích je jen jeden z příkladů. Většina lidí ani netuší, že může zdarma používat webové služby hostované samotným Oraclem – s veškerými funkcemi databáze a webových aplikací a to zcela zdarma.