Tutorial Servicii Web SOAP: Ce este protocolul SOAP?

โšก Rezumat inteligent

SOAP (Simple Object Access Protocol) este un protocol bazat pe XML pentru accesarea serviciilor web prin HTTP. Aceastฤƒ resursฤƒ explicฤƒ elementele constitutive SOAP, structura mesajelor, elementele de anvelopฤƒ ศ™i de eroare, modelul de comunicare ศ™i un exemplu practic de serviciu web ASMX.

  • ๐Ÿ“ฆ Protocol de bazฤƒ: SOAP este un protocol de mesagerie bazat pe XML, independent de transport, care permite aplicaศ›iilor construite รฎn diferite limbaje sฤƒ schimbe date prin HTTP.
  • ๐Ÿงฑ Blocuri de construcศ›ii: Un mesaj SOAP constฤƒ dintr-un plic, un antet opศ›ional, un corp ศ™i un element opศ›ional de tip Fault.
  • โœ‰๏ธ Elementul plicului: Plicul rฤƒdฤƒcinฤƒ obligatoriu รฎncapsuleazฤƒ mesajul ศ™i semnaleazฤƒ รฎnceputul ศ™i sfรขrศ™itul acestuia aplicaศ›iei client.
  • ๐Ÿ” Model de comunicare: Clientul marshaling o cerere รฎntr-un mesaj SOAP; serverul o demarshalingeazฤƒ ศ™i returneazฤƒ un rฤƒspuns SOAP, totul prin HTTP.
  • ๐Ÿ› ๏ธ Exemplu practic: Un serviciu web ASMX din Visual Studio genereazฤƒ automat mesajele de cerere ศ™i rฤƒspuns SOAP pentru clientul apelant.

Ce este protocolul SOAP

Ce este SAPUNUL?

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

SOAP este cunoscut sub numele de Simple Object Access Protocol (Protocol simplu de acces la obiecte), dar ulterior a fost prescurtat la SOAP v1.2. SOAP este un protocol sau, cu alte cuvinte, este o definiศ›ie a modului รฎn care serviciile web comunicฤƒ รฎntre ele sau 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 imens de aplicaศ›ii 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.

รŽnsฤƒ 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 recomandat ศ™i 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ฤƒรŽntrucรขt programarea SOAP se bazeazฤƒ pe limbajul XML, care รฎn sine este un limbaj uศ™or de schimb de date, prin urmare, ศ™i SOAP ca protocol se รฎncadreazฤƒ รฎn aceeaศ™i categorie.
  • SOAP este conceput sฤƒ fie independent de platformฤƒ ศ™i, de asemenea, sฤƒ fie independent de sistemul de operare. Astfel, protocolul SOAP poate funcศ›iona cu orice aplicaศ›ii bazate pe limbaj de programare, atรขt pe Windows ศ™i Linux platforme.
  • Funcศ›ioneazฤƒ pe protocolul HTTP โ€“ SOAP funcศ›ioneazฤƒ pe protocolul HTTP, care este protocolul implicit utilizat de toate aplicaศ›iile web. Prin urmare, nu este necesarฤƒ nicio personalizare 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 trimis serviciului web ศ™i aplicaศ›iei client.โ€

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

Blocuri de construcศ›ie SOAP

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

  • An Plic element care identificฤƒ documentul XML ca mesaj SOAP โ€“ Aceasta este partea care conศ›ine mesajul SOAP ศ™i este utilizatฤƒ pentru a รฎncapsula toate detaliile din mesajul SOAP. Acesta este elementul rฤƒdฤƒcinฤƒ din mesajul SOAP.
  • A Antet element care conศ›ine informaศ›ii din antet โ€“ Elementul antet poate conศ›ine informaศ›ii precum acreditฤƒrile de autentificare, care pot fi utilizate de aplicaศ›ia apelantฤƒ. 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 pot fi de tipuri simple, cum ar fi ศ™iruri de caractere ศ™i numere, dar pot 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 structurat care are o combinaศ›ie รฎntre โ€žNume Tutorialโ€ ศ™i โ€žNume Tutorialโ€. Descriptionโ€, atunci am 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>

A Corp magazin mobil element care conศ›ine informaศ›ii despre apel ศ™i rฤƒspuns โ€“ Acest element conศ›ine datele efective care trebuie trimise รฎntre serviciul web ศ™i aplicaศ›ia apelantฤƒ. Mai jos este un exemplu de serviciu web SOAP al corpului SOAP care funcศ›ioneazฤƒ efectiv pe tipul complex definit รฎn secศ›iunea antetului. Iatฤƒ rฤƒspunsul la Numele tutorialului ศ™i la 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.

Aศ™a cum s-a 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ฤƒ luฤƒm mai jos un exemplu de mesaj SOAP simplu ศ™i sฤƒ vedem ce face de fapt fiecare element.

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 รฎi spune aplicaศ›iei client numele serviciului web, parametrii pe care รฎi aศ™teaptฤƒ ศ™i tipul fiecฤƒrui parametru 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 rฤƒdฤƒcinฤƒ Envelope. Este absolut obligatoriu ca un mesaj SOAP sฤƒ aibฤƒ un element envelope.
  • 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 pentru versiunea 1.2 a elementului SOAP envelope.

<?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 cerere cฤƒtre un serviciu web SOAP, rฤƒspunsul returnat poate fi de douฤƒ forme: 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ฤƒ se genereazฤƒ 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 avea 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 prezentat mai jos. Eroarea este generatฤƒ รฎn scenariul รฎn care clientul รฎncearcฤƒ sฤƒ utilizeze o metodฤƒ numitฤƒ TutorialID din 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 eroarea de genul โ€žEศ™uat la localizarea metodei (GetTutorialID) รฎn clasa (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 oferฤƒ 2 metode, ศ™i anume:

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

รŽ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.

Model de comunicare SOAP รฎn stil RPC

Modelul de comunicare menศ›ionat mai sus are urmฤƒtoarele limitฤƒri serioase:

  1. Nu independent de limbฤƒ โ€“ Serverul care gฤƒzduieศ™te metodele ar fi รฎntr-un anumit limbaj de programare, iar รฎn mod normal apelurile cฤƒtre server s-ar face 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 utiliza apoi modelul de comunicare de mai jos.

Modelul de comunicare SOAP Stilul SOAP

  1. Clientul ar formata informaศ›iile referitoare la apelul procedurii ศ™i orice argumente รฎntr-un mesaj SOAP ศ™i le-ar trimite serverului ca parte a unei cereri HTTP. Acest proces de รฎncapsulare a datelor รฎntr-un mesaj SOAP era cunoscut sub numele de 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 Demarshalling.

Exemplu practic de SAPUN

Acum รฎn asta SoapUI รŽn acest tutorial, haideศ›i sฤƒ vedem un exemplu practic SOAP. Probabil una dintre cele mai bune metode de a vedea cum sunt generate mesajele SOAP este sฤƒ vedem 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 utilizat pentru a returna un ศ™ir de caractere 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, care este mesajul SOAP transmis รฎntre serviciul web ศ™i aplicaศ›ia apelantฤƒ. Prima condiศ›ie prealabilฤƒ pentru configurarea aplicaศ›iei noastre de serviciu web poate fi รฎndeplinitฤƒ urmรขnd paศ™ii de mai jos. Asiguraศ›i-vฤƒ 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 pentru un proiect nou

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 oricฤƒrei aplicaศ›ii web.
  2. Daศ›i un nume proiectului dvs., care รฎn cazul nostru a fost webservice.asmx. Apoi asiguraศ›i-vฤƒ cฤƒ specificaศ›i o locaศ›ie unde vor fi stocate fiศ™ierele proiectului.

Detalii proiect exemplu mesaj SOAP

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

Explorator de soluศ›ii exemplu de mesaj SOAP

Pas 3) รŽn acest pas, vom adฤƒuga un fiศ™ier de serviciu Web la proiectul nostru.

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

Exemplu de mesaj SOAP proiect cu clic dreapta

  1. Dupฤƒ ce faceศ›i clic dreapta pe fiศ™ierul proiectului, aveศ›i posibilitatea de a alege opศ›iunea โ€žAdฤƒugare->Serviciu Web (ASMX)โ€ pentru a adฤƒuga un fiศ™ier de serviciu web. Trebuie doar sฤƒ furnizaศ›i numele Serviciului Tutorial pentru fiศ™ierul cu numele serviciului web.

Exemplu de mesaj SOAP pentru adฤƒugarea unui serviciu web

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

Exemplu de cod de serviciu web pentru mesaje 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 odatฤƒ cu includerea acestui pas de adฤƒugare a unui atribut [WebMethod], se asigurฤƒ 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 de ieศ™ire

  • 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 (Invocare), vom primi rฤƒspunsul de mai jos รฎn browserul web.

Exemplu de mesaj SOAP - rฤƒspuns la invocarea unui mesaj

Rezultatul 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 Cerere SOAP

Code Explicaลฃie:

  1. Prima parte a mesajului SOAP este elementul anvelopฤƒ, care a fost discutat รฎn capitolele anterioare. Acesta este elementul de รฎncapsulare 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 Rฤƒspuns 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 anvelopฤƒ, care a fost discutat รฎn capitolele anterioare. Acesta este elementul de รฎncapsulare 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 โ€žstringโ€. Acesta รฎi spune aplicaศ›iei client cฤƒ serviciul web apelat returneazฤƒ un obiect de tip ศ™ir. Acest lucru este foarte util, deoarece altfel aplicaศ›ia client nu ar ศ™ti ce returneazฤƒ serviciul web.

รŽntrebฤƒri frecvente

Inteligenศ›a artificialฤƒ poate genera cereri SOAP din limbaj natural, poate valida plicuri รฎn raport cu un WSDL ศ™i poate detecta mesaje malformate sau suspecte. รŽn sistemele enterprise vechi, asistenศ›ii inteligenศ›i artificiali ajutฤƒ, de asemenea, dezvoltatorii sฤƒ รฎnศ›eleagฤƒ ศ™i sฤƒ รฎntreศ›inฤƒ mai rapid serviciile SOAP mai vechi.

Da. Instrumentele de inteligenศ›ฤƒ artificialฤƒ pot genera automat exemple de plicuri SOAP, pot crea scenarii de erori ศ™i pot construi teste de regresie pentru endpoint-uri. Dezvoltatorii ar trebui sฤƒ revizuiascฤƒ XML-ul generat pentru a confirma cฤƒ spaศ›iile de nume, tipurile de date ศ™i anteturile de securitate sunt corecte รฎnainte de utilizare.

SOAP este un protocol strict bazat pe XML, cu standarde รฎncorporate pentru securitate ศ™i gestionarea erorilor. REST este un stil arhitectural mai uศ™or, care utilizeazฤƒ metode HTTP ศ™i adesea JSON. SOAP se potriveศ™te integrฤƒrilor formale ale รฎntreprinderilor, รฎn timp ce REST este popular pentru API-urile web publice.

Da. Deศ™i REST dominฤƒ noile API-uri publice, SOAP rฤƒmรขne comun รฎn sistemele de tip รฎntreprinderi, bancar, de plฤƒศ›i ศ™i telecomunicaศ›ii care necesitฤƒ securitate puternicฤƒ, constrรขngeri formale...tracts (WSDL) ศ™i mesagerie fiabilฤƒ. Multe integrฤƒri vechi continuฤƒ sฤƒ depindฤƒ de serviciile web SOAP.

Rezumaศ›i aceastฤƒ postare cu: