soap vs rest difference
Dieses Tutorial erklärt SOAP- und REST-Services unter Parasoft. Sie lernen Stateless vs Stateful, Sicherheit von SOAP gegenüber REST, Warum REST schneller ist als SOAP usw.:
Wir haben auch Beispielanfragen und die Antwort von SOAP und REST im XML- bzw. JSON-Format behandelt.
Gegen Ende dieses Tutorials können Sie Ihre JSON-Programme schreiben, die mit verschiedenen Beispielprogrammen zusammen mit dem JSON Path- oder JSON Evaluator- und Document Keys-Konzept von Parasoft erläutert wurden.
=> Schauen Sie sich hier die komplette SOATest Tutorial-Reihe an .
Dieses Tutorial beschreibt auch die verschiedenen Verben, die in Parasoft oder SOAtest Automation Tool verwendet werden, sowie die Programmierbeispiele und ihren jeweiligen HTTP-Antwortcode und ihre Verwendung. Sie werden verstehen, wie Sie Ihre SOAtest Suites besser erstellen können. Dies wird in unserem nächsten Tutorial ausführlich behandelt.
Sie können auch versuchen, die unten aufgeführten Fragen zu beantworten, nachdem Sie dieses Tutorial durchlaufen haben.
Was du lernen wirst:
Was ist SOAP Service?
SOAP steht für Simple Object Access Protocol . Protokolle sind nichts anderes als eine Reihe von Regeln, die Sie für einen Test definieren. Im Gegensatz zu REST handelt es sich um ein 'State-Full' -Protokoll, bei dem WSDL (Web Services Description Language) zur Beschreibung von Webdiensten verwendet wird.
Alle Anforderungen und Antworten in SOAP werden in XML (Extensible Markup Language) ausgeführt. SOAP ist im Vergleich zu seinem Gegenstück sicherer. Es bietet keine unabhängige Verarbeitung für verschiedene Methoden, und aus diesem Grund wird es als 'State-Full' -Protokoll bezeichnet.
Warum ist SOAP sicherer?
Obwohl SOAP und REST beide SSL (Secure Socket Layer) für den Datenschutz unterstützen, unterstützt SOAP während der Anforderung Web Services Security (auch als WS-Security oder WSS bezeichnet) für den Schutz auf Unternehmensebene, der in REST Services nicht vorhanden ist. Web Services Security (WS-Security, WSS) ist eine Erweiterung von SOAP, um Sicherheit auf Web Services anzuwenden.
Ein Beispielanforderungskörper von SOAP
Parasoft TUP true
Wir haben ein XML, das als Nutzlast verwendet wird, um den Anforderungshauptteil des SOAP zu bilden. Jede XML-Sprache besteht aus der Version, die über dem Skript definiert werden soll. Sie müssen sich keine Gedanken über die Tags machen, da Sie im Gegensatz zu HTML in allen XML-Dateien Ihre Tags erstellen können.
Wenn Sie versuchen, die Token über eine SOAP-Anforderung zu generieren, müssen Sie nur die erforderlichen Parameter wie Benutzer-ID und Kennwort zusammen mit der URL angeben, die Sie im Anforderungshauptteil oder im XML unter Ihren benutzerdefinierten Tags eingeben.
Unten sehen Sie den Screenshot des Traffic Viewers des Parasoft (Eine Komponente, mit der Sie das Ergebnis sehen können).
(Bild Quelle ))
Wichtige Merkmale von SOAP
Im Folgenden sind einige der wichtigsten Funktionen von SOAP aufgeführt:
# 1) Jeder SOAP-Umschlag kann in REST-Services wie generierten Token verwendet werden, aber nicht umgekehrt. Dies bedeutet, dass, wenn Sie ein Token mit SOAP erstellt haben, dieses Token in REST verwendet werden kann (unter Abschnitt HTTP-Header-Manager => Autorisierung). Sie können jedoch keine REST-Umschläge in einer SOAP-Anforderung verwenden.
#zwei) SOAP ist sicherer als REST, da es WS-Security für die Übertragung zusammen mit Secure Socket Layer verwendet.
#3) SOAP verwendet XML nur für Anforderungen und Antworten. Es wird kein einfacher Text oder anderes verwendet.
# 4) SOAP ist zustandsvoll (nicht zustandslos), da es die gesamte Anforderung als Ganzes erfasst, im Gegensatz zu REST, das die unabhängige Verarbeitung verschiedener Methoden ermöglicht. In SOAP gibt es keine unabhängige Verarbeitung.
Was ist REST-Service?
REST steht für Representational State Transfer . REST ist eine „zustandslose“ Architektur, die mehrere Methoden oder Verben umfasst, während Anfragen und Antworten bearbeitet werden.
Alle Anforderungen und Antworten in REST werden in XML, JSON (JavaScript Object Notation) oder Nur-Text ausgeführt. REST ist schneller als SOAP, da JSON (das leichtgewichtig ist) an der Anforderung / Nutzlast von REST beteiligt ist.
Jede Methode wird unabhängig in REST verarbeitet, weshalb sie als 'zustandslose' Architektur bezeichnet wird.
Warum ist REST schneller?
Die Staatenlosigkeit von REST macht es schneller als eine SOAP. Jedes Verb wird unabhängig verarbeitet und verwendet JSON-Objekt, das beim Durchlaufen eines bestimmten Felds in einem Dokument mit mehr als einer Million Datensätzen viel schneller ist.
Bevor wir uns mit Methoden befassen, die in REST verwendet werden, müssen wir uns mit JSON und JSON-Pfad vertraut machen, da dies das häufigste Format für die Übertragung von Daten in REST ist.
Was ist JSON?
JSON steht für JavaScript Object Notation. Es ist ein Format, das üblicherweise im REST-Client verwendet wird.
Es ist selbstbeschreibend und auch leicht zu verstehen. Sie müssen nur Ihren JSON im Payload-Bereich der REST-Methode übergeben. Es ist ein leichtes Datenaustauschformat, mit dem REST-Services viel schneller sind, selbst wenn es sich um eine Million Datensätze handelt.
Programmieren mit JSON
Unten finden Sie ein Beispielprogramm mit nur einem Dokument namens 'Telefon'.
(Bild Quelle ))
Dies ist mein Beispiel-JSON-Programm, in dem ich den Wert meines Telefontyps abrufen muss. In einem solchen Szenario können Sie zwei Techniken verwenden, um durch dieses Feld zu gelangen. Einer ist nach JSON-Pfad und der andere nach Dokumentschlüssel.
# 1) Beim Umgang mit dem JSON-Pfad können Sie zwei Methoden verwenden:
$.phone(:1).type $('phone')(':1')('type')
#zwei) Da Parasoft den JSON-Pfad nicht zulässt, können wir den Dokumentschlüssel verwenden, der beim Durchlaufen etwas einfach ist. Übergeben Sie einfach den Dokumentschlüssel zusammen mit der URL auf der Registerkarte Ressource als
phone.type
Sie müssen nur auf die Schaltfläche Hinzufügen im folgenden Screenshot klicken und phone.type eingeben, und fertig.
Im folgenden Beispiel müssen Sie das letzte Element des Positionsfelds durchlaufen, das ein Array ist. Versuchen Sie daher, einen JSON-Pfad dafür zu schreiben.
Speichern von Objekten in einem Array Java
Wie Sie in den Zeilennummern 37 und 39 (oben) sehen können, wurden zwei verschiedene JSON-Pfade für denselben Übergang zum letzten Element des Positionsfelds geschrieben. Auf die gleiche Weise können Sie Ihren JSON (ein komplexes verschachteltes Dokument) erstellen und versuchen, den JSON-Pfad zu Übungszwecken zu schreiben.
ERGEBNIS:
('Helsingborg')
Sie können so viele JSONs ausprobieren, wie Sie möchten, und zwar auf einer offenen Website namens JSON Online Evaluator
Methoden / Verben in Restful Services
REST-Services bieten eine breite Palette von Methoden, die auch als Verben für eine andere Art von Anforderungen bezeichnet werden. Dazu gehören hauptsächlich POST, PUT, PATCH, GET, DELETE, CUSTOM .
POST
Diese Methode ist für die Erstellung des Datensatzes verantwortlich. Nach erfolgreicher Ausführung lautet der HTTP-Antwortcode 201.
Unten sehen Sie das Beispiel-JSON, das den POST veranschaulicht.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
Wenn wir diesen JSON als Anforderungshauptteil übergeben, wird das Dokument mit einem 201-Antwortcode erstellt.
ERHALTEN
Dies ist eine andere Methode oder ein anderes Verb, mit dem das Dokument oder der Datensatz abgerufen wird. Nach erfolgreicher Ausführung von GET lautet der Antwortcode 200. Dieser enthält keinen Anforderungshauptteil oder Nutzdaten.
Alles, was Sie tun müssen, ist, dieselbe URL mit der GET-Methode auf der Registerkarte 'Ressource' von Parasoft zu verwenden und den Dokumentschlüssel als 'Test' zu verwenden. Selbst wenn Sie keinen Dokumentschlüssel übergeben, wird das gesamte Dokument abgerufen.
Angenommen, wir übergeben den Dokumentschlüssel als 'Test.Test2'. Dann wird der folgende Datensatz abgerufen.
{ “Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
STELLEN
Diese Methode wird zum Aktualisieren des Dokuments verwendet und hat nach erfolgreicher Ausführung einen 200-Antwortcode.
Obwohl sich POST und PUT nicht sehr unterscheiden und alles vom Entwickler abhängt, wie er codieren möchte. Meistens verwenden Entwickler die PUT-Methode, wenn sie einen Feldwert aktualisieren möchten.
Zum Beispiel: Wenn wir einen Wert in dem oben durch JSST eingefügten JSON-Dokument ändern möchten, übergeben wir den gesamten Anforderungshauptteil mit dem aktualisierten Wert unter Verwendung der PUT-Methode.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
Wenn wir die Antwort in der Verkehrsanzeige sehen, wird der Feldwert als aktualisiert
'Plattform': 'Windows aktualisiert'
PATCH (BENUTZERDEFINIERT)
Dies ist eine weitere Methode, die ausschließlich zum Aktualisieren des Datensatzes verwendet wird. Die meisten Entwickler bevorzugen diese Methode gegenüber der PUT-Methode, da sie die Ressourcen optimal nutzt. Wenn Sie einen Feldwert in Ihrem Dokument aktualisieren möchten, müssen Sie nur dieses Feld mit dem aktualisierten Wert des Datensatzes übergeben.
Angenommen, wir möchten den POST-Datensatz aktualisieren, verwenden wir bei Verwendung von PATCH nur den folgenden Anforderungshauptteil.
{“Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
Wie Sie bemerkt haben, haben wir hier im Gegensatz zur PUT-Methode die Feldwerte von „Test“ nicht übergeben. Bei erfolgreicher Ausführung erhalten Sie einen Antwortcode von 200 oder 201.
LÖSCHEN
Wie der Name schon sagt, wird der Datensatz gelöscht, der auch als Einstellungen bezeichnet wird. Dies enthält keinen Anforderungshauptteil wie GET und hat häufig den Antwortcode 203 (kein Inhalt). Wenn wir das gesamte Dokument dann im obigen JSON löschen müssen, übergeben wir einfach den Dokumentschlüssel als.
Test
Dadurch wird das gesamte Dokument gelöscht. Wenn wir den Dokumentschlüssel überhaupt nicht übergeben, wird auch das gesamte Dokument gelöscht.
Fallen des Interviewers
F # 1) Die meisten Interviewer versuchen zu verwirren, wenn sie Sie fragen, ob sie einen erfolgreichen Antwortcode für Löschvorgänge mit 200 anstelle von 204 erhalten haben. Was soll ich in einer solchen Situation tun? Soll ich es als Fehler melden?
Antworten: Die Antwort auf die obige Frage ist einfach. Sie müssen keinen Fehler auslösen. Stattdessen können Sie mit dem Entwickler sprechen oder versuchen, die andere Antwort auf den Löschvorgang zu beobachten. Ein Antwortcode 200 bezeichnet immer die erfolgreiche Operation und 204 ist spezifisch für LÖSCHEN. Es besteht die Möglichkeit, dass die Entwickler 200 für alle erfolgreichen Vorgänge verwendet haben.
F # 2) Wie überprüfe ich, ob die jeweiligen Feldwerte korrekt sind oder nicht, ohne eine Datenbank in einer JSON-Anforderung von 1 Million Codezeilen zu verwenden?
Antworten: Die Antwort besteht darin, den Dokumentschlüssel in der GET-Operation zu senden. Die Beispiel-URL sieht wie folgt aus:
https://resource-name.com/context-key/document-key
In der obigen URL ruft Ihr Kontextschlüssel diesen bestimmten JSON von 1 Million Datensätzen eindeutig ab, und der Dokumentschlüssel ruft den bestimmten Feldwert in diesem Datensatz ab.
F # 3) Wenn ich über meinem JSON keinen Dokumentnamen angeben soll, was soll ich als Dokumentschlüssel übergeben, um das gesamte Dokument abzurufen?
Antworten: Sie können alles passieren. Ja genau. Wenn Sie keinen Dokumentnamen angegeben haben und nur Felder und Werte in Ihrem Dokument vorhanden sind, können Sie einen beliebigen Zeichenfolgenwert übergeben. Diese Zeichenfolge wird automatisch als Dokumentschlüssel behandelt.
Zusammenfassung
Inzwischen sollten Sie eine gute Vorstellung von SOAP- und REST-Webdiensten, ihrer Struktur, den Hauptunterschieden zwischen ihnen, ihren Funktionen und ihrer Verwendung haben.
Darüber hinaus haben wir in diesem Lernprogramm die gängigsten / wichtigsten Methoden (auch als Verben bezeichnet) behandelt, die in REST-Services zusammen mit der JSON-Programmierung und dem JSON-Pfad für Evaluierungszwecke verwendet werden.
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- JSON Tutorial: Einführung und ein vollständiger Leitfaden für Anfänger
- Ein einfacher Ansatz für XML zum Testen von Datenbanken
- 10 besten API-Testtools im Jahr 2021 (SOAP- und REST-API-Testtools)
- 15+ SoapUI-Tutorials: Das beste API-Testtool für Webdienste
- 7 Wichtige Funktionen von SoapUI und SoapUI Pro - Tutorial 2
- So erstellen Sie einen Mock-Service und eine dynamische Antwort in SoapUI
- So erstellen Sie ein REST-Projekt in SoapUI Pro: Lernprogramm Nr. 13
- Schritt für Schritt SoapUI Download- und Installationsprozess - SoapUI Tutorial # 3
- Top 45 Fragen und Antworten zu Web Services-Interviews (RESTful-, SOAP- und Sicherheitsfragen)