SOAP-Webdienste-Tutorial: Was ist das SOAP-Protokoll?

โšก Intelligente Zusammenfassung

SOAP (Simple Object Access Protocol) ist ein XML-basiertes Protokoll fรผr den Zugriff auf Webdienste รผber HTTP. Diese Ressource erlรคutert die SOAP-Bausteine, die Nachrichtenstruktur, die Envelope- und Fault-Elemente, das Kommunikationsmodell und ein praktisches Beispiel fรผr einen ASMX-Webdienst.

  • ๐Ÿ“ฆ Kernprotokoll: SOAP ist ein transportunabhรคngiges, XML-basiertes Messaging-Protokoll, das es Anwendungen, die in verschiedenen Sprachen entwickelt wurden, ermรถglicht, Daten รผber HTTP auszutauschen.
  • ๐Ÿงฑ Bausteine: Eine SOAP-Nachricht besteht aus einem Envelope, einem optionalen Header, einem Body und einem optionalen Fault-Element.
  • โœ‰๏ธ Hรผllelement: Der obligatorische Root-Envelope kapselt die Nachricht und signalisiert der Client-Anwendung deren Anfang und Ende.
  • ๐Ÿ” Kommunikationsmodell: Der Client wandelt eine Anfrage in eine SOAP-Nachricht um; der Server demerialisiert sie und sendet eine SOAP-Antwort zurรผck, alles รผber HTTP.
  • ๏ธ Praxisbeispiel: Ein ASMX-Webdienst in Visual Studio generiert automatisch die SOAP-Anfrage- und Antwortnachrichten fรผr den aufrufenden Client.

Was ist das SOAP-Protokoll?

Was ist SOAP?

SOAP ist ein XML-basiertes Protokoll fรผr den Zugriff auf Webdienste รผber HTTP. Es verfรผgt รผber einige Spezifikationen, die in allen Anwendungen verwendet werden kรถnnen.

SOAP steht fรผr Simple Object Access Protocol, wurde aber spรคter einfach zu SOAP v1.2 abgekรผrzt. SOAP ist ein Protokoll oder, anders ausgedrรผckt, eine Definition dafรผr, wie Webdienste untereinander oder mit Clientanwendungen, die sie aufrufen, kommunizieren.

SOAP wurde als Zwischensprache entwickelt, damit Anwendungen, die auf verschiedenen Programmiersprachen basieren, problemlos miteinander kommunizieren kรถnnen und der extreme Entwicklungsaufwand vermieden wird.

SOAP-Einfรผhrung

In der heutigen Welt gibt es eine Vielzahl von Anwendungen, die auf verschiedenen Programmiersprachen basieren. Beispielsweise kรถnnte eine Webanwendung in โ€ฆ entwickelt worden sein. Java, ein weiteres in .NET und ein weiteres in PHP.

Der Datenaustausch zwischen Anwendungen ist in der heutigen vernetzten Welt von entscheidender Bedeutung. Der Datenaustausch zwischen diesen heterogenen Anwendungen wรคre jedoch komplex. Dies gilt auch fรผr die Komplexitรคt des Codes, der diesen Datenaustausch ermรถglicht.

Eine Methode zur Bekรคmpfung dieser Komplexitรคt besteht darin, XML (Extensible Markup Language) als Zwischensprache fรผr den Datenaustausch zwischen Anwendungen zu verwenden.

Jede Programmiersprache kann die XML-Auszeichnungssprache verstehen. Daher wurde XML als zugrunde liegendes Medium fรผr den Datenaustausch verwendet.

Es gibt jedoch keine einheitlichen Spezifikationen fรผr die Verwendung von XML in allen Programmiersprachen zum Datenaustausch. Hier kommt SOAP-Software ins Spiel.

SOAP wurde fรผr die Arbeit mit XML รผber HTTP entwickelt und verfรผgt รผber eine Art Spezifikation, die in allen Anwendungen verwendet werden kann. In den folgenden Kapiteln werden wir uns das SOAP-Protokoll genauer ansehen.

Vorteile von SOAP

SOAP ist das Protokoll, das fรผr den Datenaustausch zwischen Anwendungen verwendet wird. Nachfolgend sind einige Grรผnde aufgefรผhrt, warum SOAP verwendet wird.

  • Wenn entwickelnping Fรผr SOAP-basierte Webdienste benรถtigen Sie eine Sprache, mit der Webdienste mit Clientanwendungen kommunizieren kรถnnen. SOAP ist das ideale Medium, da es genau fรผr diesen Zweck entwickelt wurde. Dieses Protokoll wird auch vom W3C-Konsortium empfohlen, dem Gremium, das alle Webstandards festlegt.
  • SOAP ist ein leichtgewichtiges Protokoll, das fรผr den Datenaustausch zwischen Anwendungen verwendet wird. Beachten Sie das Schlรผsselwort 'leichtDa die SOAP-Programmierung auf der XML-Sprache basiert, die selbst eine leichtgewichtige Datenaustauschsprache ist, fรคllt SOAP als Protokoll ebenfalls in dieselbe Kategorie.
  • SOAP ist plattform- und betriebssystemunabhรคngig konzipiert. Daher kann das SOAP-Protokoll mit Anwendungen jeder Programmiersprache auf beiden Systemen verwendet werden. Windows und Linux Plattformen.
  • Es basiert auf dem HTTP-Protokoll โ€“ SOAP nutzt das HTTP-Protokoll, das Standardprotokoll aller Webanwendungen. Daher sind keine Anpassungen erforderlich, um auf dem SOAP-Protokoll basierende Webdienste im World Wide Web auszufรผhren.

SOAP-Bausteine

Die SOAP-Spezifikation definiert etwas, das als โ€žSOAP-Nachrichtโ€œ, was an den Webdienst und die Client-Anwendung gesendet wird.

Das folgende Diagramm der SOAP-Architektur zeigt die verschiedenen Bausteine โ€‹โ€‹einer SOAP-Nachricht.

SOAP-Bausteine

Die SOAP-Nachricht ist nichts anderes als ein bloรŸes XML-Dokument, das die folgenden Komponenten enthรคlt.

  • An Umschlag Das Element, das das XML-Dokument als SOAP-Nachricht kennzeichnet โ€“ dies ist der umschlieรŸende Teil der SOAP-Nachricht und dient dazu, alle Details der SOAP-Nachricht zu kapseln. Es handelt sich um das Wurzelelement der SOAP-Nachricht.
  • A Kopfzeile Das Header-Element enthรคlt Informationen wie Authentifizierungsdaten, die von der aufrufenden Anwendung verwendet werden kรถnnen. Es kann auch Definitionen komplexer Datentypen enthalten, die in der SOAP-Nachricht verwendet werden. StandardmรครŸig kann die SOAP-Nachricht Parameter enthalten, die einfache Datentypen wie Zeichenketten und Zahlen sein kรถnnen, aber auch komplexe Objekttypen.

Im Folgenden wird ein einfaches SOAP-Dienstbeispiel fรผr einen komplexen Datentyp dargestellt. Angenommen, wir mรถchten einen strukturierten Datentyp senden, der eine Kombination aus einem โ€žTutorialnamenโ€œ und einem โ€žTutorialโ€œ enthรคlt. DescriptWenn wir dann โ€žionโ€œ verwenden, definieren wir den komplexen Typ wie unten gezeigt. Der komplexe Typ wird durch das Element-Tag definiert. Alle erforderlichen Elemente der Struktur sowie ihre jeweiligen Datentypen werden dann in der Sammlung komplexer Typen definiert.

<xsd:complexType>
   <xsd:sequence>
      <xsd:element name="Tutorial Name" type="string"/>
      <xsd:element name="Tutorial Description" type="string"/>
   </xsd:sequence>
</xsd:complexType>

A Korpus Element, das Aufruf- und Antwortinformationen enthรคlt โ€“ Dieses Element enthรคlt die eigentlichen Daten, die zwischen dem Webdienst und der aufrufenden Anwendung ausgetauscht werden mรผssen. Nachfolgend finden Sie ein Beispiel fรผr den SOAP-Body eines SOAP-Webdienstes, der mit dem im Header definierten komplexen Datentyp arbeitet. Hier ist die Antwort fรผr den Tutorialnamen und das Tutorial. DescriptIonen, die an die aufrufende Anwendung gesendet wird, die diesen Webdienst aufruft.

<soap:Body>
   <GetTutorialInfo>
      <TutorialName>Web Services</TutorialName>
      <TutorialDescription>All about web services</TutorialDescription>
   </GetTutorialInfo>
</soap:Body>

SOAP-Nachrichtenstruktur

Zu beachten ist, dass SOAP-Nachrichten normalerweise automatisch vom Webdienst generiert werden, wenn dieser aufgerufen wird.

Wenn eine Client-Anwendung eine Methode im Webdienst aufruft, generiert der Webdienst automatisch eine SOAP-Nachricht mit den erforderlichen Details der Daten, die vom Webdienst an die Client-Anwendung gesendet werden.

Wie im vorherigen Abschnitt dieses SOAP-Tutorials erlรคutert, besteht eine einfache SOAP-Nachricht aus folgenden Elementen:

  • Das Envelope-Element
  • Das Header-Element und
  • Das Kรถrperelement
  • Das Fault-Element (optional)

Schauen wir uns im Folgenden ein Beispiel einer einfachen SOAP-Nachricht an und sehen wir uns an, was jedes Element bewirkt.

SOAP-Nachrichtenstruktur
SOAP-Nachrichtenstruktur

  1. Wie aus der obigen SOAP-Nachricht hervorgeht, ist der erste Teil der SOAP-Nachricht das Umschlagelement, das zum Kapseln der gesamten SOAP-Nachricht verwendet wird.
  2. Das nรคchste Element ist der SOAP-Text, der die Details der eigentlichen Nachricht enthรคlt.
  3. Unsere Nachricht enthรคlt einen Webdienst mit dem Namen โ€žGuru99WebServiceโ€.
  4. Die vollstรคndigeGuru99Webserviceโ€œ akzeptiert einen Parameter vom Typ 'int' und hat den Namen TutorialID.

Jetzt wird die obige SOAP-Nachricht zwischen dem Webdienst und der Clientanwendung weitergeleitet.

Sie kรถnnen erkennen, wie nรผtzlich die obigen Informationen fรผr die Clientanwendung sind. Die SOAP-Nachricht teilt der Clientanwendung den Namen des Webdienstes, die erwarteten Parameter und den jeweiligen Datentyp mit.

SOAP-Umschlagelement

Der erste Teil des Bausteins ist der SOAP-Umschlag.

Der SOAP-Umschlag wird verwendet, um alle notwendigen Details der SOAP-Nachrichten zu kapseln, die zwischen dem Webdienst und der Client-Anwendung ausgetauscht werden.

Das SOAP-Envelope-Element wird verwendet, um den Anfang und das Ende einer SOAP-Nachricht anzuzeigen. Dadurch kann die Clientanwendung, die den Webdienst aufruft, wissen, wann die SOAP-Nachricht endet.

Zum SOAP-Envelope-Element sind folgende Hinweise zu beachten.

  • Jede SOAP-Nachricht benรถtigt ein Wurzelelement namens โ€žEnvelopeโ€œ. Das Vorhandensein eines Envelope-Elements ist fรผr eine SOAP-Nachricht zwingend erforderlich.
  • Jedes Umschlagelement muss mindestens ein Seifenkรถrperelement haben.
  • Wenn ein Envelope-Element ein Header-Element enthรคlt, darf es nicht mehr als eines enthalten und muss als erstes untergeordnetes Element des Envelope vor dem Body-Element erscheinen.
  • Der Umschlag รคndert sich, wenn sich die SOAP-Versionen รคndern.
  • Ein v1.1-kompatibler SOAP-Prozessor generiert einen Fehler, wenn er eine Nachricht empfรคngt, die den v1.2-Envelope-Namespace enthรคlt.
  • Ein v1.2-kompatibler SOAP-Prozessor generiert einen Versionskonfliktfehler, wenn er eine Nachricht empfรคngt, die den v1.2-Envelope-Namespace nicht enthรคlt.

Nachfolgend ein SOAP-API-Beispiel der Version 1.2 des SOAP-Envelope-Elements.

<?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>

Die Fehlermeldung

Bei einer Anfrage an einen SOAP-Webdienst kann die Antwort entweder eine Erfolgsmeldung oder eine Fehlermeldung sein. Im Erfolgsfall antwortet der Server stets mit einer SOAP-Nachricht. Fehler hingegen werden als โ€žHTTP 500โ€œ-Fehler zurรผckgegeben.

Die SOAP-Fehlermeldung besteht aus den folgenden Elementen.

  1. <faultCode> โ€“ Dies ist der Code, der den Fehlercode angibt. Der Fehlercode kann einen der folgenden Werte annehmen:
    1. SOAP-ENV:VersionMismatch โ€“ Dies ist der Fall, wenn ein ungรผltiger Namespace fรผr das SOAP-Envelope-Element festgestellt wird.
    2. SOAP-ENV:MustUnderstand โ€“ Ein unmittelbar untergeordnetes Element des Header-Elements, dessen Attribut โ€žmustUnderstandโ€œ auf โ€ž1โ€œ gesetzt ist, wurde nicht verstanden.
    3. SOAP-ENV:Client โ€“ โ€‹โ€‹Die Nachricht war falsch formatiert oder enthielt falsche Informationen.
    4. SOAP-ENV:Server โ€“ Es gab ein Problem mit dem Server, daher konnte die Nachricht nicht fortgesetzt werden.
  2. โ€“ Dies ist die Textnachricht, die eine detaillierte Beschreibung des Fehlers enthรคlt.
  3. (Optional) โ€“ Dies ist eine Textzeichenfolge, die angibt, wer den Fehler verursacht hat.
  4. (Optional) โ€“ Dies ist das Element fรผr anwendungsspezifische Fehlermeldungen. Daher kรถnnte die Anwendung eine bestimmte Fehlermeldung fรผr verschiedene Geschรคftslogikszenarien haben.

Beispiel fรผr Fehlermeldung

Ein Beispiel fรผr eine Fehlermeldung ist unten aufgefรผhrt. Der Fehler tritt auf, wenn der Client versucht, die Methode โ€žTutorialIDโ€œ der Klasse โ€žGetTutorialโ€œ aufzurufen. Die folgende Fehlermeldung wird generiert, falls die Methode in der definierten Klasse nicht existiert.

<?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>

Ausgang:

Wenn Sie den obigen Code ausfรผhren, wird eine Fehlermeldung wie โ€žMethode (GetTutorialID) in Klasse (GetTutorial) konnte nicht gefunden werdenโ€œ angezeigt.

SOAP-Kommunikationsmodell

Die gesamte Kommunikation per SOAP erfolgt รผber das HTTP-Protokoll. Vor SOAP viele Web-Services verwendete den Standard-RPC-Stil (Remote Procedure Call) fรผr die Kommunikation. Dies war die einfachste Art der Kommunikation, hatte jedoch viele Einschrรคnkungen.

In diesem SOAP-API-Tutorial betrachten wir das folgende Diagramm, um die Funktionsweise dieser Kommunikation zu verstehen. In diesem Beispiel gehen wir davon aus, dass der Server einen Webdienst mit zwei Methoden bereitstellt:

  • GetEmployee โ€“ Dadurch wรผrden alle Mitarbeiterdaten abgerufen.
  • SetEmployee โ€“ Dadurch wรผrden die Werte der Details wie Abteilung, Gehalt usw. eines Mitarbeiters entsprechend festgelegt.

Bei der normalen Kommunikation im RPC-Stil wรผrde der Client einfach die Methoden in seiner Anfrage aufrufen und die erforderlichen Parameter an den Server senden, und der Server wรผrde dann die gewรผnschte Antwort senden.

SOAP-Kommunikationsmodell (RPC-Stil)

Das oben beschriebene Kommunikationsmodell weist folgende gravierende Einschrรคnkungen auf:

  1. Nicht sprachunabhรคngig โ€“ Der Server, auf dem die Methoden gehostet werden, ist in einer bestimmten Programmiersprache geschrieben, und normalerweise erfolgen die Aufrufe an den Server ausschlieรŸlich in dieser Programmiersprache.
  2. Nicht das Standardprotokoll โ€“ Beim Aufruf der Remote-Prozedur erfolgt der Aufruf nicht รผber das Standardprotokoll. Dies war ein Problem, da grรถรŸtenteils die gesamte Kommunikation รผber das Web รผber das HTTP-Protokoll erfolgen musste.
  3. Firewalls โ€“ Da RPC-Aufrufe nicht รผber das normale Protokoll erfolgen, mรผssen auf dem Server separate Ports geรถffnet sein, damit der Client mit dem Server kommunizieren kann. Normalerweise blockieren alle Firewalls diese Art von Datenverkehr und im Allgemeinen waren umfangreiche Konfigurationsschritte erforderlich, um sicherzustellen, dass diese Art der Kommunikation zwischen dem Client und dem Server funktioniert.

Um alle oben genannten Einschrรคnkungen zu รผberwinden, wรผrde SOAP dann das unten beschriebene Kommunikationsmodell verwenden.

SOAP-Kommunikationsmodell (SOAP-Stil)

  1. Der Client formatierte die Informationen zum Prozeduraufruf und etwaigen Argumenten in eine SOAP-Nachricht und sendete diese als Teil einer HTTP-Anfrage an den Server. Dieser Prozess der Datenkapselung in eine SOAP-Nachricht wurde als SOAP-Verknรผpfung bezeichnet. Rangieren.
  2. Der Server wรผrde dann die vom Client gesendete Nachricht entpacken, die Clientanfrage prรผfen und die entsprechende Antwort als SOAP-Nachricht an den Client zurรผcksenden.ping Eine vom Client gesendete Anfrage wird als โ€ฆ bezeichnet. Abgrenzung.

Praktisches SOAP-Beispiel

Jetzt hier SoapUI In diesem Tutorial sehen wir uns ein praktisches SOAP-Beispiel an. Am besten versteht man die Generierung von SOAP-Nachrichten, indem man einen Webdienst in Aktion beobachtet.

In diesem Thema geht es um die Verwendung von Microsoft.Net-Framework zum Erstellen eines ASMX-Webdienstes. Diese Art von Webdienst unterstรผtzt sowohl SOAP Version 1.1 als auch Version 1.2.

ASMX-Webdienste generieren automatisch die Web Service Definition Language (WSDL) dokumentieren. Dieses WSDL-Dokument wird von der aufrufenden Clientanwendung benรถtigt, damit die Anwendung weiรŸ, wozu der Webdienst in der Lage ist.

In unserem Beispiel erstellen wir einen einfachen Webdienst, der einen String an die aufrufende Anwendung zurรผckgibt. Dieser Webdienst wird in einem Asp.Net Internetanwendung. AnschlieรŸend rufen wir den Webdienst auf und sehen das Ergebnis, das vom Webdienst zurรผckgegeben wird.

Visual Studio zeigt uns auch die SOAP-Nachricht an, die zwischen dem Webdienst und der aufrufenden Anwendung ausgetauscht wird. Die erste Voraussetzung fรผr die Einrichtung unserer Webdienstanwendung kann durch Befolgen der folgenden Schritte erfรผllt werden. Bitte stellen Sie sicher, dass fรผr dieses Beispiel Visual Studio 2013 auf Ihrem System installiert ist.

Schritt 1) Der erste Schritt besteht darin, eine leere ASP.Net-Webanwendung zu erstellen. Klicken Sie in Visual Studio 2013 auf die Menรผoption Datei->Neues Projekt.

SOAP-Nachrichtenbeispiel neues Projekt

Sobald Sie auf die Option โ€žNeues Projektโ€œ klicken, รถffnet Visual Studio ein weiteres Dialogfeld, in dem Sie den Projekttyp auswรคhlen und die erforderlichen Projektdetails eingeben kรถnnen. Dies wird im nรคchsten Schritt erlรคutert.

Schritt 2) In diesem Schritt

  1. Stellen Sie sicher, dass Sie zuerst Folgendes auswรคhlen C# Webvorlage fรผr ASP.NET-Webanwendungen. Dieses Projekt muss von diesem Typ sein, um ein SOAP-Dienstprojekt zu erstellen. Bei Auswahl dieser Option fรผhrt Visual Studio die notwendigen Schritte zum Hinzufรผgen der fรผr jede webbasierte Anwendung erforderlichen Dateien aus.
  2. Geben Sie Ihrem Projekt einen Namen, in unserem Fall webservice.asmx. Stellen Sie anschlieรŸend sicher, dass Sie einen Speicherort fรผr die Projektdateien angeben.

SOAP-Nachrichtenbeispiel โ€“ Projektdetails

Nach Abschluss des Vorgangs wird die erstellte Projektdatei im Projektmappen-Explorer von Visual Studio 2013 angezeigt.

SOAP-Nachrichtenbeispiel-Lรถsungs-Explorer

Schritt 3) In diesem Schritt fรผgen wir unserem Projekt eine Webdienstdatei hinzu.

  1. Klicken Sie zunรคchst mit der rechten Maustaste auf die Projektdatei, wie unten dargestellt.

SOAP-Nachrichtenbeispiel (Rechtsklick-Projekt)

  1. Sobald Sie mit der rechten Maustaste auf die Projektdatei klicken, kรถnnen Sie die Option โ€žHinzufรผgen โ†’ Webdienst (ASMX)โ€œ auswรคhlen, um eine Webdienstdatei hinzuzufรผgen. Geben Sie der Webdienstdatei einfach den Namen โ€žTutorialdienstโ€œ an.

SOAP-Nachrichtenbeispiel: Webdienst hinzufรผgen

Schritt 4) Fรผgen Sie Ihrer Tutorial Service-ASMX-Datei den folgenden Code hinzu.

Beispiel fรผr SOAP-Nachrichten-Webservice-Code

Code Erlรคuterung:

  1. Diese Codezeile stellt einen Namen fรผr Ihre Webdienstdatei bereit. Dies ist ein wichtiger Schritt, da er der Clientanwendung die Mรถglichkeit gibt, den Webdienst รผber den Namen des Webdiensts aufzurufen.
  2. Normalerweise wird eine Klassendatei verwendet, um die Funktionalitรคt eines Webdienstes zu kapseln. Die Klassendatei enthรคlt also die Definition aller Webmethoden, die der Clientanwendung einige Funktionen bereitstellen.
  3. Hier wird [WebMethod] als Attribut bezeichnet, das eine Funktion beschreibt. Im nรคchsten Schritt wird eine Funktion namens โ€žGuru99WebServiceโ€œ, aber durch das Hinzufรผgen des Attributs [WebMethod] wird sichergestellt, dass diese Methode von einer Clientanwendung aufgerufen werden kann. Fehlt dieses Attribut, kann die Methode von keiner Clientanwendung aufgerufen werden.
  4. Hier definieren wir eine Funktion namens 'GuruDie Funktion โ€ž99WebServiceโ€œ gibt eine Zeichenkette an die aufrufende Clientanwendung zurรผck. Es handelt sich um einen Webdienst, der von jeder Clientanwendung aufgerufen werden kann.
  5. Wir verwenden die return-Anweisung, um die Zeichenkette โ€žDies ist ein Guru99 Webdienstโ€œ an die Clientanwendung.

Wenn der Code erfolgreich ausgefรผhrt wird, wird die folgende Ausgabe angezeigt, wenn Sie Ihren Code im Browser ausfรผhren.

Ausgang:

Beispielausgabe einer SOAP-Nachricht

  • Die Ausgabe zeigt deutlich, dass der Name unseres Webdienstes โ€žGuru99 Web Serviceโ€œ, was das Ergebnis der Namensgebung fรผr unseren Webdienst ist.
  • Wir kรถnnen auch sehen, dass wir den Webdienst aufrufen kรถnnen. Wenn wir auf die Schaltflรคche โ€žAufrufenโ€œ klicken, erhalten wir die folgende Antwort im Webbrowser.

SOAP-Nachrichtenbeispiel: Antwort aufrufen

Die obige Ausgabe:

  • Es zeigt deutlich, dass durch Aufruf der Webmethode die Zeichenkette โ€žDies ist ein GuruEs wird โ€ž99 Webdienstโ€œ zurรผckgegeben.
  • Visual Studio ermรถglicht Ihnen auรŸerdem die Anzeige der SOAP-Nachrichtenanforderung und -antwort, die generiert wird, wenn der oben genannte Webdienst aufgerufen wird.

Die SOAP-Anfrage, die beim Aufruf des Webservices generiert wird, ist unten dargestellt.

SOAP-Nachricht Beispiel SOAP-Anfrage

Code Erlรคuterung:

  1. Der erste Teil der SOAP-Nachricht ist das Envelope-Element, das bereits in den vorherigen Kapiteln besprochen wurde. Es handelt sich um das umschlieรŸende Element, das in jeder SOAP-Nachricht vorhanden ist.
  2. Der SOAP-Body ist das nรคchste Element und enthรคlt die eigentlichen Details der SOAP-Nachricht.
  3. Der dritte Teil ist das Element, das angibt, dass wir den Dienst mit dem Namen โ€žโ€œ aufrufen mรถchten.Guru99WebService'.

SOAP-Nachricht Beispiel SOAP-Antwort

<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 Erlรคuterung:

  1. Der erste Teil der SOAP-Nachricht ist das Envelope-Element, das bereits in den vorherigen Kapiteln besprochen wurde. Es handelt sich um das umschlieรŸende Element, das in jeder SOAP-Nachricht vorhanden ist.
  2. Der SOAP-Body ist das nรคchste Element und enthรคlt die eigentlichen Details der SOAP-Nachricht.
  3. Das Interessante daran ist nun das Attribut โ€žstringโ€œ. Dieses teilt der Clientanwendung mit, dass der aufgerufene Webdienst ein Objekt vom Typ โ€žstringโ€œ zurรผckgibt. Das ist sehr nรผtzlich, da die Clientanwendung sonst nicht wรผsste, was der Webdienst zurรผckgibt.

Hรคufig gestellte Fragen

KI kann SOAP-Anfragen aus natรผrlicher Sprache generieren, Envelopes anhand einer WSDL validieren und fehlerhafte oder verdรคchtige Nachrichten erkennen. In รคlteren Unternehmenssystemen unterstรผtzen KI-Assistenten Entwickler zudem dabei, รคltere SOAP-Dienste schneller zu verstehen und zu warten.

Ja. KI-Tools kรถnnen automatisch SOAP-Beispiel-Envelopes generieren, Fehlerszenarien erstellen und Regressionstests fรผr Endpunkte durchfรผhren. Entwickler sollten das generierte XML vor der Verwendung รผberprรผfen, um sicherzustellen, dass Namensrรคume, Datentypen und Sicherheitsheader korrekt sind.

SOAP ist ein striktes, XML-basiertes Protokoll mit integrierten Standards fรผr Sicherheit und Fehlerbehandlung. REST hingegen ist ein schlankerer Architekturstil, der HTTP-Methoden und hรคufig JSON verwendet. SOAP eignet sich fรผr formale Unternehmensintegrationen, wรคhrend REST fรผr รถffentliche Web-APIs beliebt ist.

Ja. Obwohl REST bei neuen รถffentlichen APIs dominiert, ist SOAP in Unternehmens-, Bank-, Zahlungs- und Telekommunikationssystemen, die hohe Sicherheit und formale Standards erfordern, weiterhin weit verbreitet.tracts (WSDL) und zuverlรคssige Nachrichtenรผbermittlung. Viele รคltere Integrationen sind weiterhin auf SOAP-Webdienste angewiesen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: