Mi a WSDL?
A Web Services Description Language (WSDL) egy XML alapú fájl, amely alapvetően megmondja az ügyfélalkalmazásnak, hogy mit csinál a webszolgáltatás. A WSDL fájl dióhéjban leírja, hogy mit tesz a webszolgáltatás, és megadja az ügyfélnek a webszolgáltatáshoz való csatlakozáshoz és a webszolgáltatás által nyújtott összes funkció használatához szükséges összes információt.
Ebben az oktatóanyagban az utolsó pontra fogunk összpontosítani, amely a webszolgáltatások legfontosabb része, vagyis a WSDL vagy a webszolgáltatások leírási nyelve.
A WSDL fájl dióhéjban leírja, hogy mit tesz a webszolgáltatás, és megadja az ügyfélnek a webszolgáltatáshoz való kapcsolódáshoz és a webszolgáltatás által nyújtott összes funkció használatához szükséges összes információt.
Ebben az oktatóanyagban megtanulja-
- A WSDL dokumentum felépítése
- WSDL elemek
- Miért a WSDL
- WSDL üzenetrész
- Port típusú kötés
- WSDL fájl létrehozása
- A webszolgáltatás példájának közzététele
A WSDL dokumentum felépítése
A webszolgáltatás leírására WSDL dokumentumot használnak. Erre a leírásra azért van szükség, hogy az ügyfélalkalmazások megértsék, mit is csinál a webszolgáltatás.
- A WSDL fájl tartalmazza a webszolgáltatás helyét és
- A webszolgáltatás által kitett módszerek.
Maga a WSDL fájl minden felhasználó számára nagyon összetettnek tűnhet, de tartalmazza az összes szükséges információt, amelyre bármely ügyfélalkalmazásnak szüksége lenne a megfelelő webszolgáltatás használatához.
Az alábbiakban bemutatjuk a WSDL fájl általános felépítését
- Meghatározás
- TargetNamespace
- Adattípusok
- üzenetek
- Porttype
- Kötések
- szolgáltatás
Az egyik legfontosabb dolog, amit itt meg kell jegyezni, hogy az üzenetek meghatározása, amelyet a SOAP protokoll ad át, a WSDL dokumentumban tulajdonképpen meghatározza.
A WSDL-dokumentum valójában megmondja az ügyfélalkalmazásnak, hogy milyen típusú SOAP-üzeneteket küld és fogad el a webszolgáltatás.
Más szavakkal, a WSDL olyan, mint egy képeslap, amelynek egy adott hely címe van. A cím megadja a képeslap átadójának adatait. Ezért ugyanígy a WSDL fájl a képeslap, amely megadja a webszolgáltatás címét, amely az ügyfél által igényelt összes funkciót el tudja látni.
… … … … …
Az alábbiakban bemutatjuk a WSDL fájl felépítésének diagramját
WSDL elemek
A WSDL fájl a következő fő részeket tartalmazza
-
A
címke az összes összetett adattípus meghatározására szolgál, amelyeket az ügyfélalkalmazás és a webszolgáltatás között kicserélt üzenet fog használni. Ez fontos szempont az ügyfélalkalmazásban, mert ha a webszolgáltatás összetett adattípussal működik, akkor az ügyfélalkalmazásnak tudnia kell, hogyan kell feldolgozni az összetett adattípust. Az olyan adattípusok, mint a lebegő, a számok és a karakterláncok, mind egyszerű adattípusok, de létezhetnek strukturált adattípusok, amelyeket a webszolgáltatás biztosíthat. Például létezhet egy EmployeeDataType nevű adattípus, amelynek két eleme lehet "EmployeeName", karaktersorozat típusú, és "EmployeeID" típusú, vagy egész típusú. Együtt alkotnak egy adatstruktúrát, amely aztán komplex adattípussá válik.
-
A
címke segítségével meghatározható az üzenet, amelyet az ügyfélalkalmazás és a webkiszolgáló cserél. Ezek az üzenetek elmagyarázzák a be- és kimeneti műveleteket, amelyeket a webszolgáltatás elvégezhet. Például egy üzenet lehet egy üzenet, amely elfogadja a munkavállaló EmployeeID azonosítóját, és a kimeneti üzenet lehet a munkavállaló neve a megadott EmpoyeeID alapján. -
A
címkét arra használják, hogy minden bemeneti és kimeneti üzenetet egyetlen logikai műveletbe foglaljon. Tehát létezhet egy "GetEmployee" nevű művelet, amely egyesíti azt a bemeneti üzenetet, hogy elfogadja az EmployeeID-t egy kliens alkalmazásból, majd elküldi az EmployeeName-t kimeneti üzenetként. -
A
címkét arra használják, hogy a műveletet az adott port típushoz kösse. Ennek az az oka, hogy amikor az ügyfélalkalmazás felhívja a megfelelő porttípust, akkor hozzáférhet az ehhez a porttípushoz kötött műveletekhez. A porttípusok olyanok, mint az interfészek. Tehát, ha egy ügyfélalkalmazásnak webszolgáltatást kell használnia, akkor a kötelező információkat fel kell használnia annak biztosítására, hogy csatlakozhasson az adott webszolgáltatás által biztosított felülethez. -
A
címke egy neve, amelyet magának a webszolgáltatásnak adnak. Kezdetben, amikor egy ügyfélalkalmazás felhívja a webszolgáltatást, akkor a webszolgáltatás nevének meghívásával fog tenni. Például egy webszolgáltatás olyan címen található, mint a http: //localhost/Guru99/Tutorial.asmx . A szolgáltatási címke URL-je valójában a következő lesz : http: //localhost/Guru99/Tutorial.asmx , amely valójában megmondja az ügyfélalkalmazásnak, hogy ezen a helyen elérhető webes szolgáltatás.
Miért a WSDL
A webes szolgáltatás fontos elem a modern webes alkalmazások kiépítésében. Fő céljuk, hogy a különféle programozási nyelvekre épülő több alkalmazás beszélhessen egymással. Például, egy .Net webalkalmazás beszélgethet egy Java alkalmazással egy webszolgáltatáson keresztül.
A webszolgáltatás a következő főbb jellemzőkkel rendelkezik
- Az XML programozási nyelv használatával épül fel. Szinte az összes modern technológia, például a .Net és a Java megfelelő parancsokkal rendelkezik, amelyek képesek XML-mel való együttműködésre. Ezért az XML-t vették a legalkalmasabb nyelvnek a webes szolgáltatások felépítéséhez.
- A webszolgáltatások HTTP-n keresztül kommunikálnak. A HTTP egy protokoll, amelyet az összes webalapú alkalmazás használ. Ezért volt értelme annak biztosítása, hogy a webszolgáltatások is képesek legyenek a HTTP protokoll használatára.
- A webszolgáltatások megfelelnek egy adott nyelvi specifikációnak. Ezt a specifikációt a W3C állítja be, amely az összes webes szabvány irányító testülete.
- A webszolgáltatások WSDL néven ismert leírási nyelvvel rendelkeznek, amelyet a webszolgáltatás leírására használnak.
A WSDL fájl egyszerű régi XML formátumban van megírva. Az ok, hogy XML-ben van, az, hogy a fájlt bármilyen programozási nyelv olvassa.
Tehát, ha az ügyfélalkalmazást .Net-ben írták, akkor megértette az XML fájlt. Hasonlóképpen, ha az ügyfélalkalmazást Java programozási nyelven írták, akkor képes lenne értelmezni a WSDL fájlt is.
A WSDL fájl köti össze mindent. A fenti ábra alapján láthatja, hogy web szolgáltatást hozhat létre a .Net nyelven.
Tehát itt valósul meg a szolgáltatás. Ha nem rendelkezik a WSDL fájllal, és azt szeretné, ha egy Java osztály fogyasztaná a webszolgáltatást, ennek eléréséhez sok kódolási erőfeszítésre van szükség.
De most az XML formátumú WSDL fájl segítségével, amelyet bármely programozási nyelv megérthet, most már könnyedén megkaphatja a Java osztályt a .Net webszolgáltatás használatával. Ennélfogva a kódolási erőfeszítések nagysága jelentősen csökken.
WSDL üzenetrész
A WSDL egy "üzenetek" nevű szakaszból áll, amelyet az <üzenet> elem jelöl .
Ezt az elemet alapvetően a webszolgáltatás és az ügyfélalkalmazás között kicserélt adatok leírására használják.
Minden webszolgáltatásnak mindig kétféle üzenete lesz,
- Az egyik a webszolgáltatás bevitelére szolgál, a másik a webszolgáltatás kimenetére.
- A bemenet a webszolgáltatás által elfogadott paraméterek leírására szolgál. Ez az ügyfélalkalmazás fontos szempontja, hogy ismerje a webszolgáltatáshoz paraméterként küldendő értékeket.
- A másik típusú üzenet a kimeneti üzenet, amely megmondja, milyen eredményeket nyújt a webszolgáltatás.
Minden üzenetnek lesz egy
Az alábbiakban bemutatunk egy egyszerű példát arra, hogyan néz ki egy webszolgáltatáshoz tartozó üzenet. A webszolgáltatás funkciója az, hogy megadja a "bemutató" nevét, amint egy "oktatóanyag azonosítót" paraméterként elküld a webszolgáltatáshoz.
- Amint láthatjuk, a webszolgáltatásnak 2 üzenete van, az egyik a bemenethez, a másik a kimenethez.
- A bemeneti üzenet TutorialNameRequest néven ismert, amelynek egy TutorialID nevű paramétere van. Ez a paraméter típusszáma, amelyet az xsd: szám típus ad meg
- A kimeneti üzenet TutorialNameResponse néven ismert, amelynek egy TutorialName nevű paramétere van. Ez a paraméter az xsd: string típus által megadott karakterlánc típusú
Port típusú kötés
A portok a WSDL-ben egy teljes művelet meghatározására szolgálnak, amelyet a webszolgáltatás kínál.
Az előző témában láttuk, hogy webszolgáltatásunk 2 üzenetet adott, az egyiket a "TutorialNameRequest" nevű bemenethez, a másikat pedig a "TutorialNameResponse" nevű kimenethez. A bemeneti és kimeneti űrlap együtt egy teljes műveletként ismert.
A WSDL egy
Tehát a fenti példánkban a következőket jegyezhetjük meg:
- A műveletet befogadó porttípus neve "Tutorial_PortType".
- Maga a művelet "Tutorial" nevet kap. Tehát a műveletünk alapvetően egy TutorialName-t biztosít, ha a TutorialID-t adja meg bemeneti paraméterként.
- Következik a 2 üzenetünk, az egyik a bemenethez, a másik a kimenethez, amely a működésünket alkotja
A
- A fenti példa azt mutatja, hogy a kötés egy kötési névből áll, amelyet esetünkben "TutorialSoapBinding" néven kapunk. Az egyszerű megkötés az az információ, amelyet az ügyfélalkalmazás felhasznál, hogy ténylegesen bekapcsolódjon a webszolgáltatásba. Miután ténylegesen kapcsolódik a webszolgáltatáshoz, képes meghívni a webszolgáltatás által kitett különféle műveleteket.
- A szállítási réteg http: // néven van megadva, ami azt jelenti, hogy az üzenetek átkerülnek a HTTP protokollon.
WSDL fájl létrehozása
A WSDL fájl akkor jön létre, amikor egy webszolgáltatást bármilyen programozási nyelvre építenek.
Mivel a WSDL fájlt egyszerű bonyolultan lehet előállítani, minden szerkesztő, például a Visual Studio for .Net és az Eclipse for Java automatikusan létrehozza a WSDL fájlt.
Az alábbiakban bemutatunk egy példát a Visual Studio alkalmazásban létrehozott WSDL fájlra.
TutorialService
A fenti WSDL fájl minden felhasználó számára nagyon megfélemlítőnek tűnik, a következő részekben részletesen bemutatjuk a különböző részeket, de most nézzünk meg összefoglalót arról, hogy a WSDL fájl egyes szakaszai mit csinálnak valójában
A webszolgáltatás példájának közzététele
Most nézzünk meg egy példát arra, hogyan tehetünk közzé egy webszolgáltatást és hogyan használhatjuk fel azt a Visual Studio használatával.
Ebben a példában létrehozunk egy webszolgáltatást egy WebMethod használatával. Ez a módszer elfogadja a "TutorialID" nevű Integer paramétert. A webes módszer ezután egy "Web Services" nevű karakterláncot ad vissza.
Ezután létrehozunk egy konzol alapú alkalmazást, amely felhasználja ezt a webszolgáltatást, és ennek megfelelően hívja meg webes módszerünket.
Nézzük meg a példa végrehajtásához szükséges lépéseket.
1. lépés: Az első lépés a webszolgáltatás létrehozása. Az Asp.Net webprojekt és webszolgáltatás létrehozásának részletes lépéseit itt ismertettük; Kérjük, kövesse ugyanazokat a lépéseket a projekt és a webszolgáltatás megfelelő létrehozásához. A legfontosabb rész az alábbi kód beírása a webszolgáltatások fájlba.
namespace webservic asmx{[WebService(Name = "Guru99 Web service")]public class TutorialService : System.Web.Services.WebService{[WebMethod]public string GetTutorialService(int TutoriallD){string TutorialName = "Web Services";return TutorialName;}}}
Kód Magyarázat:
- Itt létrehozunk egy "Guru99WebService" nevű webmódszert. Ebben a webes módszerben egy egész paramétert adunk meg, amelyet át kell adni, amikor ezt a webes módszert meghívják.
- Ezután meghatározzuk a "TutorialName" nevű változót, amely megtartja a "Web Services" karakterlánc értékét. Ez az érték adódik vissza, amikor a webszolgáltatást hívják.
2. lépés: Miután meghatároztuk a webszolgáltatások fájlt, a következő lépés egy kliens projekt létrehozása, amely ezt a webszolgáltatást elfogyasztja.
Hozzunk létre egy egyszerű konzolalkalmazást, amely felhívja ezt a webszolgáltatást, meghívja a "Guru99WebService" szolgáltatást, majd megjeleníti a webes módszer kimenetét a konzol napló képernyőjén. Konzolalkalmazás létrehozásához kövesse az alábbi lépéseket.
Kattintson a jobb gombbal a Visual Studio megoldásfájljára, és válassza az Add-> New project lehetőséget
3. lépés) Ebben a lépésben
- Először válassza a Visual C # Windows opciót. Ezután válassza ki a konzolalkalmazás létrehozásának lehetőségét.
- Adjon nevet a projektjének, amelyet esetünkben "DemoApplication" néven kaptak.
Miután rákattintott az OK gombra a fenti képernyőn, láthatja a projektet a Visual Studio Solution explorer programjában.
4. lépés) Ebben a lépésben a DemoApplication Console alkalmazást indítási projektként állítja be. Ez annak biztosítására szolgál, hogy ez az alkalmazás induljon el először a teljes Visual Studio projekt futtatásakor. Ez a Console alkalmazás viszont felhívja a webszolgáltatást, amelyet a Visual Studio automatikusan elindít.
A lépés végrehajtásához kattintson a jobb gombbal a DemoApplication projektre, és válassza a "Beállítás StartUp projektként" lehetőséget.
5. lépés) A következő lépés a "Guru99Webservice" szolgáltatás referenciájának hozzáadása a konzolalkalmazáshoz. Ez azért történik, hogy a DemoApplication hivatkozhasson a webszolgáltatásra és a webszolgáltatás összes webes módszerére.
Ehhez kattintson a jobb gombbal a DemoApplication projektfájlra, és válassza az Add-> Service Reference menüpontot.
6. lépés) Ebben a lépésben megadjuk azokat a különböző értékeket, amelyek szükségesek a szolgáltatási referenciánk hozzáadásához
- Először ki kell választanunk a felfedezés lehetőségét. Ez az opció automatikusan felveszi a WSDL fájlt a TutorialService webszolgáltatásunkhoz.
- Ezután meg kell adnunk egy nevet a szolgáltatás referenciájához. Esetünkben Guru99Webservice nevet adunk neki.
- Ezután ki kell terjesztenünk a TutorialService.asmx opciót, hogy a jobb oldalon láthassuk a „GetTutorialService” módszert. Itt a TutorialService.asmx a Visual Studio .Net fájlunk neve, amely webszolgáltatásunk kódját tartalmazza.
- Ezután meglátjuk a "GetTutorialService" néven ismert webes szolgáltatásunkban meglévő webes módszerünket.
Amikor rákattintunk az „OK” gombra, a webszolgáltatás eléréséhez szükséges összes kód hozzáadódik a DemoApplication Console alkalmazásunkhoz, az alábbiak szerint.
A képernyőképen látható, hogy a "Guru99Webservice" sikeresen hozzáadódott a konzolos alkalmazásunkhoz.
7. lépés: A következő lépés a kód hozzáadása a konzolalkalmazáshoz, hogy hozzáférhessen a webes módszerhez a webszolgáltatásunkban. Nyissa meg a konzolalkalmazással automatikusan érkező Program.cs kódfájlt, és adja hozzá az alábbi kódot
namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}
Kód Magyarázat: -
- Az első rész a Program.cs fájl kiválasztása. Ez a fő fájl, amelyet a Visual Studio hoz létre konzolalkalmazás létrehozásakor. Ezt a fájlt hajtják végre, amikor a konzolalkalmazást (esetünkben demoalkalmazást) futtatják.
- Ezután létrehozunk egy "kliens" nevű változót, amelyet a Szolgáltatási referenciánk egy korábbi lépésében létrehozott példányára állítunk be. Esetünkben a szolgáltatási hivatkozás a „Guru99Webservice.Guru99WebserviveSoapClient ()”
- Ezután a TutorialService webszolgáltatásban a "GetTutorialService" nevet kapjuk. Ne felejtsük el, hogy a GetTutorialService "módszerünk elfogad egy egész paramétert, ezért csak egy egész paramétert adunk át a webes módszernek.
- Ez az utolsó sor csak annak biztosítására szolgál, hogy a konzol napló képernyője aktív maradjon, hogy megtekinthessük a kimenetet. Ez a parancs csak várni fog a felhasználó valamilyen bemenetére.
Kimenet
Ha az összes fenti lépést betartja, és a DemoApplication fut, az alábbi kimenet jelenik meg.
A kimenetből egyértelműen láthatjuk, hogy a DemoApplication hívja webszolgáltatásunkat, és hogy a webszolgáltatás által visszaadott karakterlánc megjelenik a konzol naplónkban.
Összegzés
- A WSDL teljes formája a Web Services Description Language
- A WSDL dokumentum egy olyan dokumentum, amelyet egy webszolgáltatás leírására használnak. Ez kulcs ahhoz, hogy minden ügyfélalkalmazás megismerje a webszolgáltatás helyét. Ez lehetővé teszi az ügyfélalkalmazás számára a webszolgáltatásban elérhető módszerek megértését is.
- A WSDL fájl nagyon megkönnyíti a webszolgáltatás egy programozási nyelven történő megvalósítását és egy másik programozási nyelvről történő meghívását.
- A WSDL dokumentum általában üzenetből áll. Minden webes módszerhez 2 üzenet tartozik, az egyik a bemenetre, a másik a kimenetre szól. Együtt alkotnak egy műveletet.
- Web Services Description Language (a WSDL rövidítése) fájlok általában a szerkesztőben jönnek létre, amelyet a megfelelő programozási nyelvhez használnak.
- Láttuk, hogyan használhatunk webszolgáltatást a Visual Studio-ban. Ez megtehető egy másik projekt létrehozásával, amely egy konzolos alkalmazás. Ezután egy szolgáltatás hivatkozás hozzáadásával hozzáférhetünk a webes szolgáltatásunk webes módszereihez.