REST szolgáltatások önleíró publikálása és klienskód generálása .NET platformon

OData támogatás
Konzulens:
Nagy Ákos
Automatizálási és Alkalmazott Informatikai Tanszék

A mobiltechnológia életünk minden területére jelentős hatással van, befolyásolja mindennapi tevékenységeinket. Ezeken az eszközökön rendkívül fontos a hálózaton áthaladó adatok mennyisége és nagysága, így egyre jobban előtérbe kerültek a REST (Representational State Transfer) típusú webes szolgáltatások. Az új típusú szolgáltatások megváltoztatták a fejlesztés több folyamatát kliens és szerver oldalon egyaránt. A hagyományos webszolgáltatásokhoz képest jelentősen megváltozott a szerverrel való kommunikáció. Már nem lehet a korábbi szerveroldali dokumentációkat és a hozzá tartozó kliensoldali kódgenerálásokat használni.

A hagyományos webszolgáltatások esetén a WSDL (Web Services Description Language) leíró nyelv feladata az, hogy a szolgáltatások nyilvános felületét önleíró módon publikálja. Ez a nyilvános leírás nem csak a szolgáltatás meghívásának módját írja le, hanem a szolgáltatást megszólító klienskód generálását is lehetővé teszi. REST alapú megoldások esetén azonban nem áll még rendelkezésre ilyen szabványos formátum, így a szolgáltatás nyilvános leírása és a kliensoldali kódok generálása is körülményes, nehézkes.

A diplomamunkám során megvizsgáltam a REST interfészek publikálására szolgáló, jelenleg elérhető módszereket és megoldásokat, valamint az ezekhez kapcsolódó feldolgozási lehetőségeket .NET platformon. A megszerzett információk felhasználásával adok egy megoldást ASP.NET Web API rendszerben REST felületek publikálására. Mivel a .NET keretrendszer számos kódgenerálási lehetőséget biztosít, ezek megismerése után elkészítettem egy kódgenerátort C# nyelven, ami a REST szolgáltatások nyilvános leírása alapján előállítja a kliensoldali kódot. Ezt integráltam a Visual Studio 2015 fejlesztőkörnyezetbe, majd megvizsgáltam a .NET Compiler Platform (Roslyn) használhatóságát a kódgenerálás kapcsán.

Az elvégzett munkám egy lépés a REST típusú webszolgáltatásokkal való kapcsolattartás megkönnyítését célzó úton. Automatizáltam, könnyen használhatóvá tettem a kliens oldali fejlesztések kommunikációval kapcsolatos részét, amellyel jelentősen csökkentettem a kapcsolódó fejlesztési időt. A munkám egy kibővíthető, újrafelhasználható megoldást adhat mások számára is, valamint természetesen ötleteket a későbbi, más típusú megvalósításokhoz.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.