Kurs: XML tehnologije i veb servisi Materijali vezani uz ovu lekciju: - Test implementacija veb servisa - Implementacija veb servisa (PDF dokument) Delovi veb servis projektaPrilikom implementacije ili kreiranja veb servisa potrebno je uključiti sledeće prostore imena: System, System.Data, System.Web, System.Web.Services, System.XML. Fajl asmx je fajl koji predstavlja prednji kraj (Front-End) veb servisa koji je realizovan primenom ASP.NET tehnologije. Ovom fajlu se pridružava fajl sa cs ekstenzijom u kome se definiše klasa izvedena iz klase System.Web.Services.WebService u kojoj se implementiraju metode veb servisa. Kada se direktno iz veb Browser-a zahteva veb servis bez specificiranja Query stringa otvara, se Help strana veb servisa. Help strana metode veb servisa obezbeđuje dodatne informacije o toj metodi. Ova strana omogućava pozivanje metode veb servisa ukoliko se on može pozivati korišćenjem HTTP-POST protokola. Kada se kao Query string prosledi WSDL, otvara se WSDL strana veb servisa.
Kreiranje jednostavnog veb servisaASP.NET veb servisi su ASP.NET aplikacije pa postoji mnogo zajedničkih elemenata između njih. Fajl asmx je veb servis kreiran korišćenjem ASP.NET tehnologije. Svakom asmx fajlu pridružuje se cs (ili vb) fajl koji sadrži definiciju oblika: public class Service1: System.Web.Services.WebService. Unutar ove klase definišu se metode veb servisa. Da bi se mogla pozivati neka od metoda veb servisa, mora joj se dodati atribut [WebMethod] kao u sledećem primeru:
Metode veb servisaMetoda veb servisa mora biti javna i mora joj se dodati atribut WebMethod. WebMethod atribut ima sledeća svojstva: BufferResponse, CacheDuration, Description, EnableSession, MessageName, TransactionOption.
Na ovom primeru je prikazana jednostavna veb metoda sa primerom definisanja svojstava WebMethod atributa.
Atributi veb metodeKada je opcija BufferResponse postavljena na True, veb servis baferuje kompletan odgovor pre nego što ga pošalje korisniku, ovo je podrazumevana opcija. Kad je ova opcija na vrednost False, ASP baferuje odgovor u pakete veličine 16 KB. CacheDuration svojstvo omogućava keširanje rezultata veb servisa. Ovo je poznato kao izlazno keširanje. Specificira se vreme u sekundama koliko ASP.NET drži odgovor u kešu. Description svojstvo obezbeđuje opis za metodu veb servisa koja će se pojaviti na Help strani. Podrazumevana vrednost ovog svojstva je prazan string. EnableSession svojstvo omogućava održavanje stanja sesije za metodu veb servisa, podrazumevana opcija je False. MessageName svojstvo omogućava korišćenja preklopljenih metoda (Overloaded Method) korišćenjem nadimaka. Na primeru ispod je prikazana upotreba ovog svojstva za definisanje dve metode za sabiranje celih i sabiranje realnih brojeva. Obe metode imaju ime Add. Veb metoda može biti deo transakcije. Ako ne učestvuje u transakciji, onda se svojstvo TransactionOption postavlja na jednu od vrednosti Disabled, NotSupported, Supported. Ako je veb metoda deo transakcije, onda se svojstvo TransactionOption postavlja na jednu od vrednosti Required ili RequiresNew.
Metoda koja vraća DataSetNa ovom primeru je ilustrovan primer veb metode čija je povratna vrednost DatSet. Unutar metode se uspostavlja konekcija sa bazom podataka i izvršava odgovarajući Select upit posredstvom SqlDataAdapter objekta.
Poziv metode koja vraća DataSetU ovom primeru pokazano je prihvatanje rezultata iz DataSet-a koga je vratila veb metoda. Da bi se pozvala odgovarajuća veb metoda, kreira se veb referenca, odnosno generiše se Proxy klasa. Instancira se objekat ove klase i poziva njegova metoda GetCategoriesAsDataSet koja vraća DataSet objekat. Ovaj DataSet je iskorišćen kao izvor podataka za GridView kontrolu.
Metoda koja vraća objekat korisničke klaseNa sledećem primeru je definisana klasa Address. Objekti ove klase će biti vraćeni kao povratne vrednosti metoda nekog veb servisa.
Na sledećem primeru je prikazana metoda veb servisa koja vraća dinamičku listu objekata klase Address koja je definisana na prethodnoj slici.
Dodaje se veb referenca i instancira Proxy klasa koja sadrži metodu koja vraća listu objekata klase Address. Ova lista je izvor podataka za kontrolu GridView.
VežbaProblem: Potrebno je kreirati web servis koji će konvertovati metre u stope i obrnuto (1m = 3.2808399 stopa).
Rešenje: 1. Otvoriti novi projekat. ASP NET Web Service Application:
2. Unutar automatski kreirane klase, kreirati odgovarajuće metode za konverziju: public class Service1 : System.Web.Services.WebService [WebMethod] [WebMethod]
3. Testirati servis (F5 ili ctrl+F5):
Kreiranje aplikacije koja koristi servis: 4. Kreirati novi projekat (konzolnu aplikaciju) 5. Uneti referencu na web servis (servis mora biti aktivan):
6. Izvršiti poziv servisa: ServiceReference1.Service1SoapClient sc = new
|