Tutorial privind serviciile web SOAP: Ce este protocolul SOAP? EXEMPLU

Ce este SAPUNUL?

SOAP este un protocol bazat pe XML pentru accesarea serviciilor web prin HTTP. Are anumite specificaศ›ii care ar putea fi utilizate รฎn toate aplicaศ›iile.

SOAP este cunoscut sub numele de Protocolul de acces simplu la obiect, dar mai tรขrziu a fost doar scurtat la SOAP v1.2. SOAP este un protocol sau, cu alte cuvinte, este o definiศ›ie a modului รฎn care serviciile web vorbesc รฎntre ele sau vorbesc cu aplicaศ›iile client care le invocฤƒ.

SOAP a fost dezvoltat ca un limbaj intermediar, astfel รฎncรขt aplicaศ›iile construite pe diferite limbaje de programare sฤƒ poatฤƒ vorbi cu uศ™urinศ›ฤƒ รฎntre ele ศ™i sฤƒ evite efortul extrem de dezvoltare.

SOAP Introducere

รŽn lumea de astฤƒzi, existฤƒ un numฤƒr mare de aplicaศ›ii care sunt construite pe diferite limbaje de programare. De exemplu, ar putea exista o aplicaศ›ie web proiectatฤƒ รฎn Java, altul รฎn .Net ศ™i altul รฎn PHP.

Schimbul de date รฎntre aplicaศ›ii este crucial รฎn lumea รฎn reศ›ea de astฤƒzi. Dar schimbul de date รฎntre aceste aplicaศ›ii eterogene ar fi complex. La fel va fi ศ™i complexitatea codului pentru a realiza acest schimb de date.

Una dintre metodele folosite pentru a combate aceastฤƒ complexitate este utilizarea XML (Extensible Markup Language) ca limbaj intermediar pentru schimbul de date รฎntre aplicaศ›ii.

Fiecare limbaj de programare poate รฎnศ›elege limbajul de marcare XML. Prin urmare, XML a fost folosit ca mediu de bazฤƒ pentru schimbul de date.

Dar nu existฤƒ specificaศ›ii standard privind utilizarea XML รฎn toate limbajele de programare pentru schimbul de date. Aici intervine software-ul SOAP.

SOAP a fost proiectat sฤƒ funcศ›ioneze cu XML prin HTTP ศ™i sฤƒ aibฤƒ un fel de specificaศ›ie care ar putea fi utilizatฤƒ รฎn toate aplicaศ›iile. Vom analiza mai multe detalii despre protocolul SOAP รฎn capitolele urmฤƒtoare.

Avantajele SOAP

SOAP este protocolul folosit pentru schimbul de date รฎntre aplicaศ›ii. Mai jos sunt cรขteva dintre motivele pentru care este utilizat SOAP.

  • Cรขnd se dezvoltฤƒping Pentru serviciile web bazate pe SOAP, este nevoie de un limbaj care poate fi utilizat de serviciile web pentru a comunica cu aplicaศ›iile client. SOAP este mediul perfect, dezvoltat pentru a atinge acest scop. Acest protocol este, de asemenea, recomandat de consorศ›iul W3C, care este organismul de conducere pentru toate standardele web.
  • SOAP este un protocol uศ™or care este utilizat pentru schimbul de date รฎntre aplicaศ›ii. Notaศ›i cuvรขntul cheie 'uศ™oarฤƒ.' Deoarece programarea SOAP se bazeazฤƒ pe limbajul XML, care รฎn sine este un limbaj uศ™or de schimb de date, deci SOAP ca protocol care se รฎncadreazฤƒ, de asemenea, รฎn aceeaศ™i categorie.
  • SOAP este conceput pentru a fi independent de platformฤƒ ศ™i este, de asemenea, conceput pentru a fi independent de sistemul de operare. Deci, protocolul SOAP poate funcศ›iona orice aplicaศ›ie bazatฤƒ pe limbaj de programare pe ambele Windows ศ™i Linux platformฤƒ.
  • Funcศ›ioneazฤƒ pe protocolul HTTP โ€“ SOAP funcศ›ioneazฤƒ pe protocolul HTTP, care este protocolul implicit utilizat de toate aplicaศ›iile web. Prin urmare, nu existฤƒ niciun fel de personalizare care este necesarฤƒ pentru a rula serviciile web construite pe protocolul SOAP pentru a funcศ›iona pe World Wide Web.

Blocuri de construcศ›ie SOAP

Specificaศ›ia SOAP defineศ™te ceva cunoscut sub numele de โ€žmesaj SOAPโ€ care este ceea ce este trimis cฤƒtre serviciul web ศ™i aplicaศ›ia client.

Diagrama de mai jos a arhitecturii SOAP aratฤƒ diferitele blocuri ale unui mesaj SOAP.

Blocuri de construcศ›ie SOAP
Blocuri de construcศ›ie pentru mesaje SOAP

Mesajul SOAP nu este altceva decรขt un simplu document XML care are componentele de mai jos.

  • Un element Plic care identificฤƒ documentul XML ca un mesaj SOAP โ€“ Aceasta este partea care conศ›ine mesajul SOAP ศ™i este folosit pentru a รฎncapsula toate detaliile din mesajul SOAP. Acesta este elementul rฤƒdฤƒcinฤƒ din mesajul SOAP.
  • Un element Header care conศ›ine informaศ›ii despre antet โ€“ Elementul antet poate conศ›ine informaศ›ii precum acreditฤƒrile de autentificare care pot fi utilizate de aplicaศ›ia care apeleazฤƒ. De asemenea, poate conศ›ine definiศ›ia tipurilor complexe care ar putea fi utilizate รฎn mesajul SOAP. รŽn mod implicit, mesajul SOAP poate conศ›ine parametri care ar putea fi de tipuri simple, cum ar fi ศ™iruri ศ™i numere, dar poate fi ศ™i un tip de obiect complex.

Un exemplu simplu de serviciu SOAP de tip complex este prezentat mai jos.

Sฤƒ presupunem cฤƒ dorim sฤƒ trimitem un tip de date structurate care sฤƒ aibฤƒ o combinaศ›ie de โ€žNume tutorialโ€ ศ™i โ€žTutorial Descriptionโ€, atunci vom defini tipul complex aศ™a cum se aratฤƒ mai jos.

Tipul complex este definit de eticheta elementului . Toate elementele necesare ale structurii รฎmpreunฤƒ cu tipurile lor de date respective sunt apoi definite รฎn colecศ›ia de tipuri complexe.

<xsd:complexType>     
 <xsd:sequence>       
 	<xsd:element name="Tutorial Name" type="string"/>         
  	<xsd:element name="Tutorial Description"  type="string"/>
  </xsd:sequence>
</xsd:complexType>
  • Un element Body care conศ›ine informaศ›ii despre apel ศ™i rฤƒspuns โ€“ Acest element este ceea ce conศ›ine datele reale care trebuie trimise รฎntre serviciul web ศ™i aplicaศ›ia de apelare. Mai jos este un exemplu de serviciu web SOAP al corpului SOAP care funcศ›ioneazฤƒ de fapt pe tipul complex definit รฎn secศ›iunea antet. Iatฤƒ rฤƒspunsul Tutorial Name ศ™i Tutorial Description care este trimis cฤƒtre aplicaศ›ia de apelare care apeleazฤƒ acest serviciu web.
<soap:Body>
   <GetTutorialInfo>
		<TutorialName>Web Services</TutorialName> 
		<TutorialDescription>All about web services</TutorialDescription> 
   </GetTutorialInfo>
</soap:Body>

Structura mesajelor SOAP

Un lucru de remarcat este cฤƒ mesajele SOAP sunt รฎn mod normal generate automat de serviciul web atunci cรขnd este apelat.

Ori de cรขte ori o aplicaศ›ie client apeleazฤƒ o metodฤƒ รฎn serviciul web, serviciul web va genera automat un mesaj SOAP care va avea detaliile necesare ale datelor care vor fi trimise de la serviciul web cฤƒtre aplicaศ›ia client.

Dupฤƒ cum sa discutat รฎn subiectul anterior al acestui tutorial SOAP, un mesaj SOAP simplu are urmฤƒtoarele elemente:

  • Elementul Plic
  • Elementul antet ศ™i
  • Elementul corpului
  • Elementul de eroare (Opศ›ional)

Sฤƒ ne uitฤƒm la un exemplu de mai jos al unui mesaj SOAP simplu ศ™i sฤƒ vedem ce element face de fapt.

Structura mesajelor SOAP

Structura mesajelor SOAP
  1. Dupฤƒ cum se vede din mesajul SOAP de mai sus, prima parte a mesajului SOAP este elementul plic care este folosit pentru a รฎncapsula รฎntregul mesaj SOAP.
  2. Urmฤƒtorul element este corpul SOAP care conศ›ine detaliile mesajului real.
  3. Mesajul nostru conศ›ine un serviciu web numit โ€žGuruโ€ž99WebServiceโ€.
  4. "Guruโ€ž99Webserviceโ€ acceptฤƒ un parametru de tipul โ€žintโ€ ศ™i are numele TutorialID.

Acum, mesajul SOAP de mai sus va fi transmis รฎntre serviciul web ศ™i aplicaศ›ia client.

Puteศ›i vedea cรขt de utile sunt informaศ›iile de mai sus pentru aplicaศ›ia client. Mesajul SOAP spune aplicaศ›iei client care este numele serviciului web ศ™i, de asemenea, ce parametri se aศ™teaptฤƒ ศ™i care este tipul fiecฤƒrui parametru care este preluat de serviciul web.

Element plic SOAP

Primul bit al blocului de construcศ›ie este plicul SOAP.

Plicul SOAP este folosit pentru a รฎncapsula toate detaliile necesare ale mesajelor SOAP, care sunt schimbate รฎntre serviciul web ศ™i aplicaศ›ia client.

Elementul plic SOAP este folosit pentru a indica รฎnceputul ศ™i sfรขrศ™itul unui mesaj SOAP. Acest lucru permite aplicaศ›iei client care apeleazฤƒ serviciul web sฤƒ ศ™tie cรขnd se terminฤƒ mesajul SOAP.

Urmฤƒtoarele puncte pot fi notate pe elementul plic SOAP.

  • Fiecare mesaj SOAP trebuie sฤƒ aibฤƒ un element Envelope rฤƒdฤƒcinฤƒ. Este absolut obligatoriu ca mesajul SOAP sฤƒ aibฤƒ un element plic.
  • Fiecare element Plic trebuie sฤƒ aibฤƒ cel puศ›in un element de corp de sฤƒpun.
  • Dacฤƒ un element Envelope conศ›ine un element antet, acesta trebuie sฤƒ conศ›inฤƒ cel mult unul ศ™i trebuie sฤƒ aparฤƒ ca primul copil al Plicului, รฎnaintea elementului body.
  • Plicul se schimbฤƒ cรขnd versiunile SOAP se schimbฤƒ.
  • Un procesor SOAP compatibil cu v1.1 genereazฤƒ o eroare la primirea unui mesaj care conศ›ine spaศ›iul de nume plic v1.2.
  • Un procesor SOAP compatibil cu v1.2 genereazฤƒ o eroare Version Mismatch dacฤƒ primeศ™te un mesaj care nu include spaศ›iul de nume al plicului v1.2.

Mai jos este un exemplu de API SOAP al versiunii 1.2 a elementului plic SOAP.

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope" SOAP-ENV:encodingStyle=" http://www.w3.org/2001/12/soap-encoding">
          <soap:Body>
        <Guru99WebService xmlns="http://tempuri.org/">
                  <TutorialID>int</TutorialID>
                </Guru99WebService>
          </soap:Body>
</SOAP-ENV:Envelope>

Mesajul de eroare

Cรขnd se face o solicitare cฤƒtre un serviciu web SOAP, rฤƒspunsul returnat poate fi fie de 2 forme, care sunt un rฤƒspuns de succes sau un rฤƒspuns de eroare. Cรขnd se genereazฤƒ un succes, rฤƒspunsul de la server va fi รฎntotdeauna un mesaj SOAP. Dar dacฤƒ sunt generate erori SOAP, acestea sunt returnate ca erori โ€žHTTP 500โ€.

Mesajul SOAP Fault constฤƒ din urmฤƒtoarele elemente.

  1. <faultCode>โ€“ Acesta este codul care desemneazฤƒ codul erorii. Codul de eroare poate fi oricare dintre valorile de mai jos
    1. SOAP-ENV:VersionMismatch โ€“ Acesta este momentul รฎn care este รฎntรขlnit un spaศ›iu de nume nevalid pentru elementul SOAP Envelope.
    2. SOAP-ENV:MustUnderstand โ€“ Un element copil imediat al elementului Header, cu atributul mustUnderstand setat la โ€ž1โ€, nu a fost รฎnศ›eles.
    3. SOAP-ENV:Client โ€“ โ€‹โ€‹Mesajul a fost format incorect sau conศ›inea informaศ›ii incorecte.
    4. SOAP-ENV:Server โ€“ A apฤƒrut o problemฤƒ cu serverul, aศ™a cฤƒ mesajul nu a putut continua.
  2. โ€“ Acesta este mesajul text care oferฤƒ o descriere detaliatฤƒ a erorii.
  3. (Opศ›ional)โ€“ Acesta este un ศ™ir de text care indicฤƒ cine a cauzat defecศ›iunea.
  4. (Opศ›ional) โ€“ Acesta este elementul pentru mesajele de eroare specifice aplicaศ›iei. Deci, aplicaศ›ia ar putea avea un mesaj de eroare specific pentru diferite scenarii logice de afaceri.

Exemplu pentru mesajul de eroare

Un exemplu de mesaj de eroare este dat mai jos. Eroarea este generatฤƒ dacฤƒ scenariul รฎn care clientul รฎncearcฤƒ sฤƒ foloseascฤƒ o metodฤƒ numitฤƒ TutorialID รฎn clasa GetTutorial.

Mesajul de eroare de mai jos este generat รฎn cazul รฎn care metoda nu existฤƒ รฎn clasa definitฤƒ.

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
      <SOAP-ENV:Body>
         <SOAP-ENV:Fault>
         <faultcode xsi:type="xsd:string">SOAP-ENV:Client</faultcode>
        <faultstring xsi:type="xsd:string">
            Failed to locate method (GetTutorialID) in class (GetTutorial)
         </faultstring>
    </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

ieศ™ire:

Cรขnd executaศ›i codul de mai sus, va afiศ™a o eroare precum โ€žEศ™uat la localizarea metodei (GetTutorialID) รฎn clasฤƒ (GetTutorial)โ€

Modelul de comunicare SOAP

Toatฤƒ comunicarea prin SOAP se face prin protocolul HTTP. รŽnainte de SOAP, o mulศ›ime de servicii web a folosit stilul standard RPC (Remote Procedure Call) pentru comunicare. Acesta era cel mai simplu tip de comunicare, dar avea multe limitฤƒri.

Acum, รฎn acest tutorial SOAP API, sฤƒ luฤƒm รฎn considerare diagrama de mai jos pentru a vedea cum funcศ›ioneazฤƒ aceastฤƒ comunicare. รŽn acest exemplu, sฤƒ presupunem cฤƒ serverul gฤƒzduieศ™te un serviciu web care a furnizat 2 metode ca

  • GetEmployee โ€“ Acest lucru ar obศ›ine toate detaliile angajaศ›ilor
  • SetEmployee โ€“ Aceasta ar stabili valoarea detaliilor precum departamentul angajaศ›ilor, salariul etc. รฎn consecinศ›ฤƒ.

รŽn comunicarea normalฤƒ รฎn stil RPC, clientul ar apela doar metodele din cererea sa ศ™i ar trimite parametrii necesari cฤƒtre server, iar serverul ar trimite apoi rฤƒspunsul dorit.

Modelul de comunicare SOAP

Modelul de comunicare de mai sus are limitele serioase de mai jos

  1. Nu independent de limbฤƒ โ€“ Serverul care gฤƒzduieศ™te metodele ar fi รฎntr-un anumit limbaj de programare ศ™i, รฎn mod normal, apelurile cฤƒtre server ar fi doar รฎn acel limbaj de programare.
  2. Nu protocolul standard โ€“ Cรขnd se efectueazฤƒ un apel cฤƒtre procedura de la distanศ›ฤƒ, apelul nu este efectuat prin protocolul standard. Aceasta a fost o problemฤƒ, deoarece รฎn mare parte toate comunicฤƒrile pe web trebuiau fฤƒcute prin protocolul HTTP.
  3. firewall-uri โ€“ Deoarece apelurile RPC nu trec prin protocolul normal, porturile separate trebuie sฤƒ fie deschise pe server pentru a permite clientului sฤƒ comunice cu serverul. รŽn mod normal, toate firewall-urile ar bloca acest tip de trafic ศ™i, รฎn general, era necesarฤƒ o mulศ›ime de configuraศ›ii pentru a se asigura cฤƒ acest tip de comunicare รฎntre client ศ™i server va funcศ›iona.

Pentru a depฤƒศ™i toate limitฤƒrile menศ›ionate mai sus, SOAP ar folosi modelul de comunicare de mai jos

Modelul de comunicare SOAP

  1. Clientul ar formata informaศ›iile referitoare la apelul procedurii ศ™i orice argument รฎntr-un mesaj SOAP ศ™i le trimite serverului ca parte a unei cereri HTTP. Acest proces de รฎncapsulare a datelor รฎntr-un mesaj SOAP era cunoscut ca Marshalling.
  2. Serverul ar despacheta apoi mesajul trimis de client, ar vedea ce a solicitat clientul ศ™i apoi ar trimite rฤƒspunsul corespunzฤƒtor รฎnapoi clientului sub formฤƒ de mesaj SOAP. Practica despachetฤƒriiping O cerere trimisฤƒ de client este cunoscutฤƒ sub numele de Demarshaling.

Exemplu practic de SAPUN

Acum รฎn asta SoapUI tutorial, haideศ›i sฤƒ vedem un exemplu practic SOAP,

Probabil cฤƒ una dintre cele mai bune modalitฤƒศ›i de a vedea cum sunt generate mesajele SOAP este de a vedea de fapt un serviciu web รฎn acศ›iune.

Acest subiect va analiza utilizarea Microsoft.Net framework pentru a construi un serviciu web ASMX. Acest tip de serviciu web acceptฤƒ atรขt versiunea SOAP 1.1, cรขt ศ™i versiunea 1.2.

Serviciile web ASMX genereazฤƒ automat Limbajul de definire a serviciului web (WSDL) document. Acest document WSDL este solicitat de aplicaศ›ia client care apeleazฤƒ, astfel รฎncรขt aplicaศ›ia sฤƒ ศ™tie ce este capabil sฤƒ facฤƒ serviciul web.

รŽn exemplul nostru, vom crea un serviciu web simplu, care va fi folosit pentru a returna un ศ™ir aplicaศ›iei care apeleazฤƒ serviciul web.

Acest serviciu web va fi gฤƒzduit รฎntr-un Asp.Net aplicatie web. Apoi vom invoca serviciul web ศ™i vom vedea rezultatul care este returnat de serviciul web.

Visual Studio ne va arฤƒta, de asemenea, ce mesaj SOAP este transmis รฎntre serviciul web ศ™i aplicaศ›ia de apelare.

Prima condiศ›ie prealabilฤƒ pentru a configura aplicaศ›ia noastrฤƒ de servicii web, care poate fi fฤƒcutฤƒ urmรขnd paศ™ii de mai jos.

Vฤƒ rugฤƒm sฤƒ vฤƒ asiguraศ›i cฤƒ aveศ›i Visual Studio 2013 instalat pe sistemul dvs. pentru acest exemplu.

Pas 1) Primul pas este sฤƒ creaศ›i o aplicaศ›ie web ASP.Net goalฤƒ. Din Visual Studio 2013, faceศ›i clic pe opศ›iunea de meniu Fiศ™ier->Proiect nou.

Exemplu de mesaj SOAP

Odatฤƒ ce faceศ›i clic pe opศ›iunea Proiect nou, Visual Studio vฤƒ va oferi apoi o altฤƒ casetฤƒ de dialog pentru a alege tipul de proiect ศ™i pentru a oferi detaliile necesare ale proiectului. Acest lucru este explicat รฎn pasul urmฤƒtor.

Pas 2) รŽn aceastฤƒ etapฤƒ,

  1. Asiguraศ›i-vฤƒ cฤƒ alegeศ›i mai รฎntรขi C# ศ™ablon web al aplicaศ›iei web ASP.NET. Proiectul trebuie sฤƒ fie de acest tip pentru a crea un proiect de servicii SOAP. Alegรขnd aceastฤƒ opศ›iune, Visual Studio va efectua apoi paศ™ii necesari pentru a adฤƒuga fiศ™ierele necesare care sunt solicitate de orice aplicaศ›ie bazatฤƒ pe web.
  2. Daศ›i un nume pentru proiectul dvs. care, รฎn cazul nostru, a fost dat ca webservice.asmx. Apoi asiguraศ›i-vฤƒ cฤƒ oferiศ›i o locaศ›ie รฎn care vor fi stocate fiศ™ierele de proiect.

Exemplu de mesaj SOAP

Odatฤƒ terminat, veศ›i vedea fiศ™ierul de proiect creat รฎn exploratorul de soluศ›ii รฎn Visual Studio 2013.

Exemplu de mesaj SOAP

Pas 3) รŽn aceastฤƒ etapฤƒ,

Vom adฤƒuga un fiศ™ier serviciu web la proiectul nostru

  1. Mai รฎntรขi faceศ›i clic dreapta pe fiศ™ierul de proiect, aศ™a cum se aratฤƒ mai jos

Exemplu de mesaj SOAP

  1. Odatฤƒ ce faceศ›i clic dreapta pe fiศ™ierul de proiect, aveศ›i ศ™ansa de a alege opศ›iunea โ€žAdd->Web Service(ASMX) pentru a adฤƒuga un fiศ™ier de serviciu web. Doar furnizaศ›i un nume de Serviciu de tutorial pentru fiศ™ierul cu numele serviciului web.

Exemplu de mesaj SOAP

Pas 4) Adฤƒugaศ›i urmฤƒtorul cod รฎn fiศ™ierul asmx al serviciului de instruire.

Exemplu de mesaj SOAP

Code Explicaลฃie:

  1. Aceastฤƒ linie de cod oferฤƒ un nume pentru fiศ™ierul serviciului dvs. web. Acesta este un pas important, deoarece permite aplicaศ›iei client sฤƒ apeleze serviciul web prin numele serviciului web.
  2. รŽn mod normal, un fiศ™ier de clasฤƒ este utilizat pentru a รฎncapsula funcศ›ionalitatea unui serviciu web. Deci fiศ™ierul de clasฤƒ va avea definiศ›ia tuturor metodelor web care vor oferi anumite funcศ›ionalitฤƒศ›i aplicaศ›iei client.
  3. Aici [WebMethod] este cunoscut ca un atribut care descrie o funcศ›ie. Pasul urmฤƒtor creeazฤƒ o funcศ›ie numitฤƒ โ€žGuru99WebServiceโ€, dar includerea acestui pas de adฤƒugare a unui atribut [WebMethod] asigurฤƒ faptul cฤƒ aceastฤƒ metodฤƒ poate fi invocatฤƒ de o aplicaศ›ie client. Dacฤƒ acest atribut nu este prezent, atunci metoda nu poate fi niciodatฤƒ apelatฤƒ de o aplicaศ›ie client.
  4. Aici definim o funcศ›ie numitฤƒ 'Guru99WebService', care va fi utilizatฤƒ pentru a returna un ศ™ir de caractere aplicaศ›iei client apelante. Aceastฤƒ funcศ›ie este un serviciu web care poate fi apelat de orice aplicaศ›ie client.
  5. Folosim instrucศ›iunea return pentru a returna ศ™irul de caractere โ€žAcesta este un Guru99โ€ serviciu Web cฤƒtre aplicaศ›ia client.

Dacฤƒ codul este executat cu succes, urmฤƒtoarea ieศ™ire va fi afiศ™atฤƒ atunci cรขnd rulaศ›i codul รฎn browser.

ieศ™ire:

Exemplu de mesaj SOAP

  • Rezultatul aratฤƒ clar cฤƒ numele serviciului nostru web este โ€žGuru99 Web Serviceโ€, care este rezultatul acordฤƒrii unui nume serviciului nostru web.
  • De asemenea, putem vedea cฤƒ putem invoca serviciul web. Dacฤƒ facem clic pe butonul Invoke, vom primi rฤƒspunsul de mai jos รฎn browserul web.

Exemplu de mesaj SOAP

Ieศ™irea de mai sus,

  • Aratฤƒ clar cฤƒ prin invocarea metodei web, ศ™irul โ€žAcesta este un GuruSe returneazฤƒ โ€ž99 Web serviceโ€.
  • De asemenea, Visual Studio vฤƒ permite sฤƒ vizualizaศ›i solicitarea mesajului SOAP ศ™i rฤƒspunsul care este generat atunci cรขnd este apelat serviciul web de mai sus.

Solicitarea SOAP care este generatฤƒ atunci cรขnd este apelat serviciul web este prezentatฤƒ mai jos.

Exemplu de mesaj SOAP

Code Explicaลฃie:

  1. Prima parte a mesajului SOAP este elementul plic care este ceea ce a fost discutat รฎn capitolele anterioare. Acesta este elementul de รฎncapsulare care este prezent รฎn fiecare mesaj SOAP.
  2. Corpul SOAP este urmฤƒtorul element ศ™i conศ›ine detaliile reale ale mesajului SOAP.
  3. A treia parte este elementul care specificฤƒ faptul cฤƒ dorim sฤƒ apelฤƒm serviciul numit โ€žGuru99WebService.'

Exemplu de mesaj SOAP

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  
    <soap:Body>
      
        <Guru99WebServiceResponse xmlns="http://tempuri.org/">
          
            <Guru99WebServiceResult>string</Guru99WebServiceResult>
          
        </Guru99WebServiceResponse>
    </soap:Body>
</soap:Envelope>

Code Explicaลฃie:

  1. Prima parte a mesajului SOAP este elementul plic care este ceea ce a fost discutat รฎn capitolele anterioare. Acesta este elementul de รฎncapsulare care este prezent รฎn fiecare mesaj SOAP.
  2. Corpul SOAP este urmฤƒtorul element ศ™i conศ›ine detaliile reale ale mesajului SOAP.
  3. Partea interesantฤƒ pe care o veศ›i vedea acum este atributul โ€žศ™irโ€. Aceasta รฎi spune aplicaศ›iei client cฤƒ serviciul web apelat returneazฤƒ un obiect de tip ศ™ir. Acest lucru este foarte util deoarece dacฤƒ aplicaศ›ia client care altfel nu ar ศ™ti ce returneazฤƒ serviciul web.

Rezumat

  • SOAP este un protocol care este folosit pentru a schimba date รฎntre aplicaศ›ii care sunt construite pe diferite limbaje de programare.
  • SOAP este construit pe specificaศ›ia XML ศ™i funcศ›ioneazฤƒ cu protocolul HTTP. Acest lucru รฎl face perfect pentru utilizare รฎn cadrul aplicaศ›iilor web.
  • Blocurile SOAP constau dintr-un mesaj SOAP. Fiecare mesaj SOAP constฤƒ dintr-un element plic, un antet ศ™i un element body.
  • Elementul plic este elementul obligatoriu din mesajul SOAP ศ™i este utilizat pentru a รฎncapsula toate datele din mesajul SOAP.
  • Elementul antet poate fi folosit pentru a conศ›ine informaศ›ii precum informaศ›ii de autentificare sau definirea unor tipuri de date complexe.
  • Elementul body este elementul principal care conศ›ine definiศ›ia metodelor web รฎmpreunฤƒ cu orice informaศ›ii despre parametri, dacฤƒ este necesar.

Rezumaศ›i aceastฤƒ postare cu: