Preduslovi za pristup WS-u
S obzirom da WS samo posreduje između krajnjeg korisnika (npr. portala) i APP podataka, prvi preduslov predstavlja instalacija WebAQL-a. Skoro svaki zahtev koji WS primi, transformiše se i prosleđuje WebAQL-u. Po obradi, odgovor se vraća WS-u, koji ga nakon ponovne (izlazne) transformacije vraća krajnjem korisniku.
Drugi preduslov predstavlja neophodnost korišćenja cookie-ja za rad sa WS-om. Proxy klasa koja poziva WS, mora da pamti stanje. Iako po definiciji Web servis ne pamti stanja (eng. stateless), ovo je realizovano na ovaj (suprotan) način iz bezbednosnih razloga. Da bi se ovo postiglo, npr. u C#-u je dovoljno ubaciti samo sledeću liniju koda:
myService.CookieContainer = new System.Net.CookieContainer();
Primer aplikacije u C# : Program.cs
Parametri za pristup WS-u
Web service: http://ws.wings.rs/service.php
Web service WSDL: http://ws.wings.rs/service.php?wsdl
Nakon što se instancira WS, kao test, može se pozvati metoda webServiceInfo(), koja vraća naziv i trenutnu verziju WS-a.
Autorizacija
Da bi se izvršio pristup podacima iz APP-a, posredstvom WS-a, neophodno je izvršiti proces autorizacije. Shodno drugom preduslovu za instanciranje WS-a, ovaj proces je dovoljno izvršiti samo jednom.
Autorizacija se vrši pozivom metode processRequest(xmlRequest), gde se za vrednost xmlRequest parametra prosleđuje sledeći XML:
<header> <wingsWSusername>WS username</wingsWSusername> <wingsWSpassword>WS password</wingsWSpassword> <aqlUsername>APP username</aqlUsername> <aqlPassword>APP password</aqlPassword> </header>
Ukoliko je autorizacija uspešno izvršena, odgovor će biti:
<header> <userType>Tip korisnika<userType> <userFunctions>funkcija #1, funkcija #2, ...</userFunctions> <userVersion>Verzija APP-a</userVersion> </header>
Tip korisnika je tipa int i može imati neku od sledećih vrednosti:
-
APP korisnik
-
Komercijalista
-
Partner (kupac, dobavljač)
Funkcije čiji nazivi počinju sa m – – ne mogu se pozvati posredstvom metode processRequest(xmlRequest). One služe za internu upotrebu, označavajući koje su stavke menija (na portalu) vidljive ulogovanom korisniku. Ovo može biti korisno kod razvoja alternative portala.
Verzija APP-a je u formatu yymmdd.
U slučaju da autorizacija ne uspe, odgovor je sledeći:
<header>False</header>