soap vs rest difference
In deze tutorial worden SOAP- en REST-services op Parasoft uitgelegd. U leert Staatloos versus Stateful, Beveiliging van SOAP boven REST, Waarom REST sneller is dan SOAP, enz.:
We hebben ook voorbeeldverzoeken en de respons van SOAP en REST in respectievelijk de XML- en JSON-indeling behandeld.
Tegen het einde van deze tutorial zul je in staat zijn om je JSON-programma's te schrijven die zijn uitgelegd met verschillende voorbeeldprogramma's samen met het JSON Path of JSON Evaluator en Document Keys-concept van Parasoft.
Bekijk hier de volledige SOATest Tutorial-serie
Deze tutorial beschrijft ook de verschillende werkwoorden die worden gebruikt in Parasoft of SOAtest Automation Tool, samen met de programmeervoorbeelden en hun respectievelijke HTTP-responscode en gebruik. U zult begrijpen hoe u uw SOAtest Suites op een betere manier kunt bouwen, wat in detail zal worden behandeld in onze aanstaande tutorial.
U kunt ook proberen de vragen die onderaan worden vermeld te beantwoorden nadat u deze tutorial heeft doorlopen.
Wat je leert:
Wat is SOAP-service?
SOAP staat voor Simple Object Access Protocol Protocollen zijn niets anders dan een set regels die u voor een test definieert. Het is een 'state-full' -protocol, in tegenstelling tot REST, waarbij gebruik wordt gemaakt van WSDL (Web Services Description Language) om webservices te beschrijven.
Alle verzoeken en antwoorden in SOAP worden gedaan in XML (Extensible Markup Language). SOAP is veiliger in vergelijking met zijn tegenhanger. Het biedt geen onafhankelijke verwerking voor verschillende methoden en daarom wordt het een 'state-full' -protocol genoemd.
Waarom is SOAP veiliger?
Hoewel SOAP en REST beide SSL (Secure Socket Layer) ondersteunen voor gegevensbescherming, ondersteunt SOAP bij het indienen van het verzoek Web Services Security (ook bekend als WS-Security of WSS) voor bescherming op bedrijfsniveau die afwezig is in REST Services. Web Services Security (WS-Security, WSS) is een uitbreiding op SOAP om beveiliging toe te passen op webservices.
Een voorbeeldverzoektekst van SOAP
We hebben een XML die zal worden gebruikt als een payload om de aanvraagtekst van de SOAP te vormen. Elke XML-taal bestaat uit de versie die bovenop het script moet worden gedefinieerd. U hoeft zich geen zorgen te maken over de tags, aangezien u met alle XML-bestanden uw tags kunt maken, in tegenstelling tot HTML.
Als u de tokens probeert te genereren via een SOAP-verzoek, hoeft u alleen de nodige parameters zoals gebruikers-ID en wachtwoord op te geven, samen met de URL die u gebruikt in de hoofdtekst van het verzoek of de XML onder uw aangepaste tags.
Hieronder is de schermafbeelding van de verkeerskijker van de Parasoft weergegeven (een onderdeel waarmee u het resultaat kunt zien).
(beeld bron
Opvallende kenmerken van SOAP
Hieronder staan enkele van de opvallende kenmerken van SOAP:
# 1) Elke SOAP-envelop kan worden gebruikt in REST-services, zoals een gegenereerde token, maar niet omgekeerd. Dit betekent dat als u een token hebt gemaakt met SOAP, dat token kan worden gebruikt in REST (onder HTTP-headermanager-sectie => Autorisatie). Maar u kunt geen REST-enveloppen gebruiken in een SOAP-verzoek.
#twee) SOAP is veiliger dan REST omdat het WS-Security gebruikt voor verzending samen met Secure Socket Layer.
# 3) SOAP gebruikt alleen XML voor verzoek en antwoord. Het gebruikt geen platte tekst of andere.
# 4) SOAP is state-full (niet stateless) omdat het de hele aanvraag als geheel in beslag neemt, in tegenstelling tot REST dat onafhankelijke verwerking van verschillende methoden biedt. Er is geen onafhankelijke verwerking in SOAP.
Wat is REST-service?
REST staat voor Representational State Transfer REST is een 'staatloze' architectuur die meerdere methoden of werkwoorden omvat bij het omgaan met verzoeken en antwoorden.
Alle verzoeken en antwoorden in REST worden gedaan in XML, JSON (JavaScript Object Notation) of platte tekst. REST is sneller dan SOAP vanwege de betrokkenheid van JSON (die lichtgewicht is) bij de aanvraag / payload van REST.
Elke methode wordt onafhankelijk verwerkt in REST, wat de reden is waarom het 'staatloze' architectuur wordt genoemd.
Waarom is REST sneller?
De staatloosheid van REST maakt het sneller dan een SOAP. Elk werkwoord wordt onafhankelijk verwerkt en maakt gebruik van het JSON-object, dat veel sneller is bij het doorlopen naar een bepaald veld in een document dat meer dan een miljoen records bevat.
Voordat we beginnen met methoden die in REST worden gebruikt, moeten we het JSON- en JSON-pad kennen, aangezien dit het meest gebruikelijke formaat is voor het verzenden van gegevens in REST.
Wat is JSON?
JSON staat voor JavaScript Object Notation. Het is een indeling die vaak wordt gebruikt in de REST-client.
Het beschrijft zichzelf en is ook gemakkelijk te begrijpen. U hoeft alleen uw JSON door te geven in het payload-gedeelte van de REST-methode. Het is een lichtgewicht formaat voor gegevensuitwisseling waarmee REST-services veel sneller kunnen zijn, zelfs als het om een miljoen records gaat.
Programmeren met JSON
Hieronder ziet u een voorbeeldprogramma met slechts één document genaamd 'telefoon'.
(beeld bron
Dit is mijn voorbeeld-JSON-programma waarin ik de waarde van mijn telefoontype moet ophalen. In zo'n scenario kun je twee technieken gebruiken om door dat veld heen te komen. De ene is via JSON Path en de andere is via documentsleutel.
# 1) Bij het omgaan met het JSON-pad kunt u twee methoden gebruiken:
#twee) Omdat Parasoft het JSON-pad niet toestaat, kunnen we de documentsleutel gebruiken, die een beetje eenvoudig is bij het doorlopen. Geef gewoon de documentsleutel samen met de URL op het resourcetabblad door als
U hoeft alleen maar op de knop Toevoegen in de onderstaande schermafbeelding te klikken en phone.type in te voeren en u bent klaar.
In het onderstaande voorbeeld moet u door het laatste element van het locatieveld gaan, dat een array is. Probeer er dus een JSON-pad voor te schrijven.
php interviewvragen en antwoorden voor 1 jaar ervaring
Zoals je kunt zien in regelnummers 37 en 39 (hierboven), zijn er twee verschillende JSON-paden geschreven voor dezelfde verplaatsing naar het laatste element van het locatieveld. Op dezelfde manier kunt u uw JSON (een complex genest document) maken en proberen het JSON-pad te schrijven voor oefeningsdoeleinden.
RESULTAAT:
('Helsingborg')
U kunt zoveel JSON proberen als u wilt, op een open website met de naam JSON online evaluator
Methoden / werkwoorden in rustgevende services
REST-services bieden een breed scala aan methoden die ook bekend staan als werkwoorden voor een ander type verzoeken. Deze omvatten voornamelijk POST, PUT, PATCH, GET, DELETE, CUSTOM
POST
Deze methode is verantwoordelijk voor het maken van het record. Na succesvolle uitvoering is de HTTP-antwoordcode 201.
Hieronder ziet u het voorbeeld-JSON dat de POST illustreert.
Wanneer we deze JSON doorgeven als een verzoektekst, wordt het document gemaakt met een 201-antwoordcode.
KRIJGEN
Dit is een andere methode of werkwoord dat wordt gebruikt om het document of record op te halen. Na succesvolle uitvoering van GET is de responscode 200. Deze bevat geen verzoektekst of payload.
Het enige dat u hoeft te doen, is dezelfde URL gebruiken met behulp van de GET-methode in de resourcetab van Parasoft en de documentsleutel gebruiken als 'Test'. Zelfs als u geen documentsleutel doorgeeft, wordt het hele document opgehaald.
Laten we zeggen dat we de documentsleutel doorgeven als 'Test.Test2', dan wordt het volgende record opgehaald.
ZETTEN
Deze methode wordt gebruikt om het document bij te werken en het heeft een antwoordcode 200 na succesvolle uitvoering.
Hoewel POST en PUT niet veel verschillen en het allemaal afhangt van de ontwikkelaar hoe ze willen coderen. Meestal gebruiken ontwikkelaars de PUT-methode wanneer ze een veldwaarde willen bijwerken.
Bijvoorbeeld: Als we een waarde willen wijzigen in het bovenstaande JSON-document dat is ingevoegd door POST, dan zullen we de volledige aanvraagtekst doorgeven met de bijgewerkte waarde met behulp van de PUT-methode.
Wanneer we het antwoord in de verkeersviewer zien, wordt de veldwaarde bijgewerkt als
'Platform': 'Bijgewerkte Windows'
PATCH (AANGEPAST)
Dit is een andere methode die uitsluitend wordt gebruikt voor het bijwerken van het record. De meeste ontwikkelaars geven de voorkeur aan deze methode boven de PUT-methode, omdat deze het beste gebruik maakt van de bronnen. Als u een veldwaarde in uw document wilt bijwerken, hoeft u alleen dat veld door te geven met de bijgewerkte waarde van het record.
Laten we zeggen dat als we het POST-record willen bijwerken, we alleen de volgende verzoektekst gebruiken tijdens het gebruik van PATCH.
Zoals je hebt opgemerkt, zijn we hier niet geslaagd voor de veldwaarden van 'Test', in tegenstelling tot de PUT-methode. Een succesvolle uitvoering geeft u een responscode van 200 of 201.
VERWIJDEREN
Zoals de naam zelf suggereert, wordt het record verwijderd, ook wel bekend als voorkeuren. Dit bevat geen verzoektekst zoals GET en heeft vaak de antwoordcode 203 (geen inhoud). Als we het hele document moeten verwijderen, dan in de bovenstaande JSON, dan zullen we de documentsleutel gewoon doorgeven als.
Hiermee wordt het hele document verwijderd. Als we de documentsleutel helemaal niet doorgeven, wordt ook het hele document verwijderd.
Vallen van de interviewer
V # 1) De meeste interviewers proberen te verwarren wanneer ze u vragen dat ze een succesvolle verwijderingsreactie hebben als antwoordcode 200 in plaats van 204. Wat moet ik in dit soort situaties doen? Moet ik het rapporteren als een bug?
Antwoord: Het antwoord op bovenstaande vraag is simpel. U hoeft geen bug te melden. In plaats daarvan kunt u met de ontwikkelaar praten of proberen de reactie van de andere verwijderingsbewerking te observeren. Een antwoordcode 200 geeft altijd de succesvolle operatie aan en 204 is specifiek voor DELETE. Er is een kans dat de ontwikkelaars 200 hebben gebruikt voor alle succesvolle bewerkingen.
V # 2) Hoe controleer ik of de specifieke veldwaarden correct zijn of niet zonder een database te gebruiken in een JSON-verzoek van 1 miljoen regels code?
Antwoord: Het antwoord is door de documentsleutel in de GET-bewerking te verzenden. De voorbeeld-URL ziet er uit zoals hieronder weergegeven:
https://resource-name.com/context-key/document-key
In de bovenstaande URL haalt uw contextsleutel op unieke wijze die specifieke JSON van 1 miljoen records op en de documentsleutel haalt de specifieke veldwaarde in dat record op.
V # 3) Als ik geen documentnaam specificeer bovenop mijn JSON, wat moet ik dan doorgeven als een documentsleutel om het hele document op te halen?
Antwoord: Je kunt alles passeren. Ja precies. Als u geen documentnaam hebt opgegeven en als er alleen velden en waarden in uw document aanwezig zijn, kunt u elke tekenreekswaarde doorgeven. Die tekenreeks wordt automatisch als uw documentsleutel behandeld.
Overzicht
Inmiddels zou u een goed idee moeten hebben van SOAP- en REST-webservices, hun structuur, grote verschillen tussen hen, hun functies en gebruik.
Bovendien hebben we in deze tutorial de meest voorkomende / belangrijke methoden (ook bekend als werkwoorden) behandeld die worden gebruikt in REST-services, samen met JSON-programmering en JSON-pad voor evaluatiedoeleinden.
PREV-zelfstudie VOLGENDE zelfstudie
Aanbevolen literatuur
- JSON-zelfstudie: inleiding en een complete gids voor beginners
- Een eenvoudige aanpak voor XML naar databasetests
- 10 beste API-testtools in 2021 (SOAP- en REST API-testtools)
- 15+ SoapUI-zelfstudies: de beste API-testtool voor webservices
- 7 Belangrijke kenmerken van SoapUI en SoapUI Pro - Tutorial 2
- Hoe u mock-service en dynamische respons maakt in SoapUI
- Hoe een REST-project te maken in SoapUI Pro: Tutorial # 13
- Stap voor stap SoapUI download- en installatieproces - SoapUI Tutorial # 3
- Top 45 vragen en antwoorden voor webservices tijdens sollicitatiegesprekken (RESTful, SOAP, beveiligingsvragen)