WebElektronika

Webszolgáltatás OData protokoll használatával

person access_time 2014.10.24.
Megnézzük most egy konzolos és egy ASP.NET-es alkalmazás segítségével az OData protokoll használatát a .NET környezetben. A második projektünknél készítünk egy sajátvezérlőt is, ennek segítségével jelenítjük meg a lekért adatokat.


Az OData (Open Data Protocol) egy olyan webprotokoll, amelynek segítségével adatokat kérhetünk le,  illetve módosíthatjuk. Az OData a JSON-re és az ATOM-ra épül.
Eléggé elterjedt a használata, ezért két projektet is elkészítünk, amelyeknek a segítségével adatokat kérünk le egy tesztadatbázisból.

 

Az OData tesztszolgáltatás elérhetősége : http://services.odata.org/Northwind/Northwind.svc/
 

 

Console alkalmazás

 

Ezen a linken (http://services.odata.org/Northwind/Northwind.svc/) találunk egy tesztadatbázist (Northwind), amely az OData protokoll segítségével érhető el. Készítsünk most egy konzolos alkalmazást. amelynek segítségével lekérünk adatokat a Northwind tesztadatbázisból.
 

Indítsuk el a VS2012-t és válasszuk ki a konzolos projektkészítési lehetőséget. A projektünk neve : ConsoleOData1.

Ezután vegyük fel servicereference-ként a tesztadatbázis elérhetőségét, a referencia neve legyen : ServiceReference1.

Ezután egészítsük ki a Program osztály Main metódusát az első ábrán látható megoldásnak megfelelően.
 


1. ábra   Konzolalkalmazás az OData tesztalkalmazáshoz
 

Futtassuk a projektünket Debug módban (F5), és a következő futási eredményt kapjuk (2. ábra) :


2. ábra   A lekért felhasználók adatai
 

Módosítsuk most a lekérésünket úgy, hogy csak az Egyesült Királyságban lakó személyek adataira legyünk kiváncsiak.

Hozzuk létre anonim típusként a "Leker" nevű gyüjteményt, majd a foreach ciklus felhasználásával jelenítsük meg ezeknek az Egyesült Királyságban élőknek az adatait (3. ábra).
 


3. ábra   Módosított lekérdezés
 

A futási eredményen (4. ábra) csak az Egyesült Királyságban élő személyek adatait láthatjuk.


4. ábra   A módosított lekérés futási eredménye


 

ASP.NET-es alkalmazás


A lekérni kívánt személyek adatait most ne egy konzolalkalmazás segítségével jelenítsük meg, hanem egy webalkalmazásban.
 

Indítsuk el a VS2012-t, majd hozzunk létre egy üres ASP.NET-es alkalmazást (5. ábra). A projekt neve : WebOdata1.


5. ábra   "Üres" ASP.NET-es alkalmazás létrehozása
 

Ezután adjunk hozzá a projektünkhöz egy sajátvezérlőt (6. ábra). Ennek neve legyen "szemely.ascx".


6. ábra   Sajátvezérlő hozzáadása
 

Ehhez a projektünkhöz is adjuk hozzá service reference-ként a tesztalkalmazás URL-jét (7. ábra). Ennek is legyen a neve "ServiceReference1".


7. ábra   A ServiceReference hozzáadása a projekthez
 

Ezután vegyünk fel a sajátvezérlőnkben négy Label-t. Egy lehetséges megoldást mutat a 8. ábra.
 


8. ábra   A sajátvezérlő forrásnézete
 

A sajátvezérlő forrásnézetében látjuk a négy Label-t, amelyeknek a Text tulajdonságát fogjuk módosítani. A sajátvezérlőnket kék kerettel vesszük körbe, ezért alkalmazunk Panel vezérlőt. A sajátvezérőhöz tartozó "szemely" osztályban vegyünk fel négy property-t, és ezeket tegyük egyenlővé a megfelelő Label-ek Text tulajdonságaival (9. ábra).
 


9. ábra   A sajátvezérlő C# kódja
 

Ahhoz, hogy dinamikusan meg tudjunk jeleníteni vezérlőket a weblapunkon, fel kell vennünk az adott weblapra a PlaceHolder vezérlőt, illetve ezt a sajátvezérlőt (szemely) be kell regisztrálnunk.

Ha ezzel megvagyunk, akkor egészítsük ki a Default.aspx.cs file-ban található Page_Load eseményünket a következőképpen (10. ábra) :
 


10. ábra   A kiegészített Page_Load esemény
 

A foreach ciklusban mindig létrehozzuk a "kirak" változót, majd ennek a property-jeit  egyenlővé tesszük az adott gyűjteményelemnek (item) a tulajdonságaival.

 

Futtassuk most a webes alkalmazásunkat, indítsuk el Debug módban. A következő futási eredményt kapjuk (11. ábra):


11. ábra   Futás eredmény