Co je to WSDL?
Jazyk popisu webových služeb (WSDL) je soubor založený na XML, který v zásadě řekne klientské aplikaci, co webová služba dělá. Soubor WSDL se používá v kostce k popisu toho, co webová služba dělá, a poskytuje klientovi všechny informace potřebné pro připojení k webové službě a využití všech funkcí poskytovaných webovou službou.
V tomto tutoriálu se zaměříme na poslední bod, který je nejdůležitější součástí webových služeb, a to je WSDL nebo jazyk popisu webových služeb.
Soubor WSDL se používá v kostce k popisu toho, co webová služba dělá, a poskytuje klientovi všechny informace potřebné pro připojení k webové službě a využití všech funkcí poskytovaných webovou službou.
V tomto výukovém programu se naučíte
- Struktura dokumentu WSDL
- Prvky WSDL
- Proč WSDL
- Část zprávy WSDL
- Vazba typu portu
- Vytváření souboru WSDL
- Publikování příkladu webové služby
Struktura dokumentu WSDL
Dokument WSDL se používá k popisu webové služby. Tento popis je povinný, aby klientské aplikace dokázaly pochopit, co webová služba ve skutečnosti dělá.
- Soubor WSDL obsahuje umístění webové služby a
- Metody, které jsou vystaveny webovou službou.
Samotný soubor WSDL může vypadat pro každého uživatele velmi složitě, ale obsahuje všechny potřebné informace, které by každá klientská aplikace vyžadovala k použití příslušné webové služby.
Níže je uvedena obecná struktura souboru WSDL
- Definice
- TargetNamespace
- Typy dat
- Zprávy
- Porttyp
- Vázání
- servis
Jedna klíčová věc, kterou je třeba si zde uvědomit, je, že definice zpráv, která je předávána protokolem SOAP, je ve skutečnosti definována v dokumentu WSDL.
Dokument WSDL ve skutečnosti sděluje klientské aplikaci, jaké jsou typy zpráv SOAP, které jsou odesílány a přijímány webovou službou.
Jinými slovy, WSDL je jako pohlednice, která má adresu konkrétního místa. Adresa poskytuje podrobnosti o osobě, která pohlednici doručila. Stejným způsobem je tedy soubor WSDL pohlednice, která má adresu webové služby, která může poskytovat všechny funkce, které klient chce.
… … … … …
Níže je uveden diagram struktury souboru WSDL
Prvky WSDL
Soubor WSDL obsahuje následující hlavní části
-
Značka
se používá k definování všech komplexních datových typů, které se použijí ve zprávě vyměňované mezi klientskou aplikací a webovou službou. Toto je důležitý aspekt klientské aplikace, protože pokud webová služba pracuje s komplexním datovým typem, měla by klientská aplikace vědět, jak složitý datový typ zpracovat. Datové typy, jako jsou float, čísla a řetězce, jsou všechny jednoduché datové typy, ale mohou existovat strukturované datové typy, které mohou být poskytovány webovou službou. Například by mohl existovat datový typ s názvem EmployeeDataType, který by mohl mít 2 prvky zvané „EmployeeName“ typu řetězce a „EmployeeID“ typu číslo nebo celé číslo. Společně tvoří datovou strukturu, která se poté stává komplexním datovým typem.
-
Značka
se používá k definování zprávy, která je vyměňována mezi klientskou aplikací a webovým serverem. Tyto zprávy vysvětlí vstupní a výstupní operace, které mohou být prováděny webovou službou. Příkladem zprávy může být zpráva, která přijímá ID zaměstnance zaměstnance, a výstupní zprávou může být jméno zaměstnance na základě poskytnutého empoyeeID. -
Značka
se používá k zapouzdření každé vstupní a výstupní zprávy do jedné logické operace. Mohla by tedy existovat operace s názvem „GetEmployee“, která kombinuje vstupní zprávu o přijetí EmployeeID z klientské aplikace a poté odeslání EmployeeName jako výstupní zprávy. -
Značka
se používá k navázání operace na konkrétní typ portu. Je to tak, že když klientská aplikace zavolá příslušný typ portu, bude mít poté přístup k operacím, které jsou vázány na tento typ portu. Typy portů jsou jako rozhraní. Pokud tedy klientská aplikace potřebuje použít webovou službu, musí použít informace o vazbě, aby zajistila, že se může připojit k rozhraní poskytovanému touto webovou službou. -
Značka
je název daný samotné webové službě. Zpočátku, když klientská aplikace zavolá na webovou službu, udělá to voláním názvu webové služby. Například webovou službu lze najít na adrese, jako je http: //localhost/Guru99/Tutorial.asmx . Značka služby bude mít ve skutečnosti adresu URL definovanou jako http: //localhost/Guru99/Tutorial.asmx , která klientské aplikaci ve skutečnosti řekne, že v tomto umístění je k dispozici webová služba.
Proč WSDL
Webová služba je důležitou součástí při vytváření moderních webových aplikací. Jejich hlavním účelem je umožnit více aplikacím postaveným na různých programovacích jazycích mluvit navzájem. Například můžeme mít webovou aplikaci .Net mluvit s aplikací Java prostřednictvím webové služby.
Webová služba má následující klíčové funkce
- Je sestaven pomocí programovacího jazyka XML. Téměř všechny moderní technologie, jako jsou .Net a Java, mají odpovídající příkazy, které mají schopnost pracovat s XML. Proto byl XML považován za nejvhodnější jazyk pro vytváření webových služeb.
- Webové služby komunikují přes HTTP. HTTP je protokol používaný všemi webovými aplikacemi. Proto mělo smysl zajistit, aby webové služby měly také schopnost pracovat přes protokol HTTP.
- Webové služby odpovídají konkrétní jazykové specifikaci. Tato specifikace je stanovena W3C, který je řídícím orgánem pro všechny webové standardy.
- Webové služby mají popisný jazyk známý jako WSDL, který se používá k popisu webové služby.
Soubor WSDL je napsán v obyčejném starém XML. Důvod, proč je v XML, je ten, že soubor lze číst v libovolném programovacím jazyce.
Pokud by byla klientská aplikace napsána v .Net, porozuměla by souboru XML. Podobně, pokud by klientská aplikace byla napsána v programovacím jazyce Java, byla by také schopna interpretovat soubor WSDL.
Soubor WSDL spojuje vše dohromady. Z výše uvedeného diagramu vidíte, že můžete vytvořit webovou službu v jazyce .Net.
Zde se tedy služba implementuje. Pokud jste neměli soubor WSDL a chtěli byste, aby webová služba využívala třídu Java, budete k tomu potřebovat hodně úsilí v kódování.
Ale nyní se souborem WSDL, který je v XML, kterému rozumí každý programovací jazyk, můžete nyní snadno nechat třídu Java využívat webovou službu .Net. Proto je množství úsilí při kódování výrazně sníženo.
Část zprávy WSDL
WSDL se skládá z části zvané „zprávy“, která je označena prvkem
Tento prvek se v zásadě používá k popisu dat, která se vyměňují mezi webovou službou a klientskou aplikací.
Každá webová služba bude mít vždy 2 typy zpráv,
- Jeden je pro vstup webové služby a druhý pro výstup webové služby.
- Vstup se používá k popisu parametrů, které webová služba přijímá. Toto je důležitý aspekt klientské aplikace, aby znal hodnoty, které mají být odeslány jako parametry do webové služby.
- Druhým typem zprávy je výstupní zpráva, která sděluje, jaké výsledky poskytuje webová služba.
Každá zpráva zase bude mít prvek
Níže je uveden jednoduchý příklad toho, jak vypadá zpráva pro webovou službu. Funkcí webové služby je poskytnout název „výukového programu“, jakmile bude webové službě jako parametr odesláno „ID výukového programu“.
- Jak vidíme, webová služba má 2 zprávy, jednu pro vstup a druhou pro výstup.
- Vstupní zpráva je známá jako TutorialNameRequest, která má jeden parametr s názvem TutorialID. Tento parametr má číslo typu, které je určeno typem xsd: number
- Výstupní zpráva je známá jako TutorialNameResponse, která má jeden parametr s názvem TutorialName. Tento parametr má typový řetězec, který je určen typem xsd: string
Vazba typu portu
Porty se ve WSDL používají k definování jedné úplné operace nabízené webovou službou.
V předchozím tématu jsme viděli, že naše webová služba poskytla 2 zprávy, jednu pro vstup s názvem „TutorialNameRequest“ a druhou pro výstup s názvem „TutorialNameResponse“. Společně je vstupní a výstupní formulář zprávy známý jako jedna úplná operace.
WSDL poskytuje prvek s názvem
V našem výše uvedeném příkladu si tedy můžeme všimnout následujícího:
- Název typu portu, který zapouzdřuje operaci, je uveden jako „Tutorial_PortType“.
- Samotná operace má název „Výukový program“. Naše operace tedy v zásadě poskytuje TutorialName, pokud je TutorialID uveden jako vstupní parametr.
- Další jsou naše 2 zprávy, jedna pro vstup a druhá pro výstup, který tvoří naši činnost
Kromě prvku
- Výše uvedený příklad ukazuje, že vazba se skládá z názvu vazby, který je v našem případě uveden jako „TutorialSoapBinding“. Jednoduchou vazbou jsou informace, které klientská aplikace používá k tomu, aby se skutečně navázala na webovou službu. Jakmile je ve skutečnosti vázán na webovou službu, má schopnost volat různé operace, které jsou webovou službou zpřístupněny.
- Transportní vrstva je uvedena jako http: //, což znamená, že zprávy, které se budou přenášet přes protokol HTTP.
Vytváření souboru WSDL
Soubor WSDL se vytvoří vždy, když je webová služba vytvořena v jakémkoli programovacím jazyce.
Vzhledem k tomu, že generování souboru WSDL je zcela komplikované od nuly, všechny editory, jako je Visual Studio pro .Net a Eclipse pro Javu, automaticky vytvoří soubor WSDL.
Níže je příklad souboru WSDL vytvořeného v sadě Visual Studio.
TutorialService
Výše uvedený soubor WSDL vypadá pro každého uživatele velmi zastrašujícím způsobem, podrobně se budeme zabývat různými částmi v následujících tutoriálech, ale prozatím se podívejme na souhrn toho, co každá část souboru WSDL ve skutečnosti dělá
Publikování příkladu webové služby
Nyní se podívejme na příklad, jak můžeme publikovat webovou službu a využívat ji pomocí sady Visual Studio.
V tomto příkladu vytvoříme webovou službu pomocí jedné WebMethod. Tato metoda přijme celočíselný parametr s názvem „TutorialID.“ Metoda Web poté vrátí řetězec s názvem „Webové služby“.
Poté vytvoříme konzolovou aplikaci, která tuto webovou službu spotřebuje a podle toho zavolá naši webovou metodu.
Podívejme se na kroky potřebné k provedení tohoto příkladu.
Krok 1) Prvním krokem je vytvoření webové služby. Zde jsou vysvětleny podrobné kroky, jak je vytvořen webový projekt a webová služba Asp.Net; Postupujte podle stejných kroků a podle toho vytvořte projekt a webovou službu. Klíčovou částí je zadání níže uvedeného kódu do souboru webových služeb.
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;}}}
Vysvětlení kódu:
- Zde vytváříme WebMethod nazvanou „Guru99WebService“. V této webové metodě zahrnujeme celočíselný parametr, který je třeba předat, kdykoli se tato webová metoda volá.
- Dále definujeme proměnnou nazvanou „TutorialName“, která bude obsahovat hodnotu řetězce „Web Services“. Toto je hodnota, která bude vrácena při volání webové služby.
Krok 2) Jakmile jsme definovali soubor webových služeb, dalším krokem je vytvoření klientského projektu, který bude tuto webovou službu využívat.
Vytvořme jednoduchou konzolovou aplikaci, která bude volat tuto webovou službu, vyvoláme "Guru99WebService" a poté zobrazíme výstup webové metody na obrazovce protokolu konzoly. Podle následujících pokynů vytvořte konzolovou aplikaci.
Pravým tlačítkem klikněte na soubor řešení Visual Studio a vyberte možnost Přidat-> Nový projekt
Krok 3) V tomto kroku
- Nejprve vyberte možnost Visual C # Windows. Poté zvolte možnost vytvoření konzolové aplikace.
- Pojmenujte svůj projekt, který v našem případě dostal název „DemoApplication“.
Po kliknutí na tlačítko OK na výše uvedené obrazovce budete moci projekt zobrazit v Průzkumníku řešení v sadě Visual Studio.
Krok 4) V tomto kroku nastavujete aplikaci DemoApplication Console jako spouštěcí projekt. To se provádí, aby se zajistilo, že se tato aplikace spustí jako první, když je spuštěn celý projekt Visual Studio. Tato konzolová aplikace bude zase volat webovou službu, která bude automaticky spuštěna Visual Studio.
Chcete-li tento krok dokončit, klikněte pravým tlačítkem na projekt DemoApplication a vyberte možnost „Nastavit jako StartUp projekt.“
Krok 5) Dalším krokem je přidání odkazu na službu naší „Guru99Webservice“ do naší konzolové aplikace. To se děje tak, že DemoApplication může odkazovat na webovou službu a všechny webové metody ve webové službě.
Chcete-li to provést, klepněte pravým tlačítkem myši na soubor projektu DemoApplication a vyberte možnost nabídky Přidat-> Reference služby.
Krok 6) V tomto kroku uvedeme různé hodnoty, které jsou nutné k přidání našeho odkazu na službu
- Nejprve si musíme vybrat naši možnost objevování. Tato možnost automaticky vyzvedne soubor WSDL pro naši webovou službu TutorialService.
- Dále bychom měli dát název pro naši servisní referenci. V našem případě mu dáváme název Guru99Webservice.
- Pak musíme rozbalit možnost TutorialService.asmx, abychom mohli mít možnost zobrazit metodu 'GetTutorialService' na pravé straně. TutorialService.asmx je název našeho souboru Visual Studio .Net, který obsahuje kód pro naši webovou službu.
- Poté uvidíme naši webovou metodu, kterou jsme měli v naší webové službě známé jako „GetTutorialService“
Když klikneme na tlačítko „OK“, veškerý požadovaný kód pro přístup k této webové službě bude přidán do naší aplikace DemoApplication Console, jak je uvedeno níže.
Screenshot ukazuje, že „Guru99Webservice“ byl úspěšně přidán do naší konzolové aplikace.
Krok 7) Dalším krokem je přidání kódu do naší konzolové aplikace pro přístup k webové metodě v naší webové službě. Otevřete soubor kódu Program.cs, který se automaticky dodává s konzolovou aplikací, a přidejte následující kód
namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}
Vysvětlení kódu: -
- První částí je výběr souboru Program.cs. Toto je hlavní soubor, který Visual Studio vytvoří při vytvoření konzolové aplikace. Tento soubor je spuštěn při spuštění konzolové aplikace (v našem případě demo aplikace).
- Poté vytvoříme proměnnou nazvanou „klient“, která bude nastavena na instanci našeho odkazu na službu, která byla vytvořena v dřívějším kroku. V našem případě je odkaz na službu „Guru99Webservice.Guru99WebserviveSoapClient ()“
- Potom voláme naši metodu Webmethod 'GetTutorialService' ve webové službě TutorialService Pamatujte, že naše metoda GetTutorialService 'přijímá celočíselný parametr, takže právě předáváme celočíselný parametr webové metodě.
- Tento poslední řádek slouží pouze k zajištění toho, aby obrazovka protokolu konzoly zůstala aktivní, abychom mohli zobrazit výstup. Tento příkaz bude jen čekat na nějaký vstup od uživatele.
Výstup
Po provedení všech výše uvedených kroků a spuštění DemoApplication se zobrazí níže uvedený výstup.
Z výstupu jasně vidíme, že DemoApplication volá naši webovou službu a že řetězec vrácený webovou službou se zobrazuje v našem protokolu konzoly.
souhrn
- Plnou formou WSDL je jazyk popisu webových služeb
- Dokument WSDL je dokument, který se používá k popisu webové služby. To je klíč pro každou klientskou aplikaci, aby věděla, kde se webová služba nachází. Umožňuje také klientské aplikaci porozumět metodám dostupným ve webové službě.
- Soubor WSDL velmi usnadňuje implementaci webové služby v jednom programovacím jazyce a volání z jiného programovacího jazyka.
- Dokument WSDL se obvykle skládá ze zprávy. Pro každou webovou metodu existují 2 zprávy, jedna je pro vstup a druhá pro výstup. Společně tvoří operaci.
- Soubory popisu webových služeb (zkratka pro WSDL) se obvykle vytvářejí v editoru, který se používá pro příslušný programovací jazyk.
- Viděli jsme, jak můžeme využívat webovou službu v sadě Visual Studio. Toho lze dosáhnout vytvořením jiného projektu, kterým je konzolová aplikace. Poté přidáním odkazu na službu můžeme získat přístup k webovým metodám v naší webové službě.