soap vs rest difference
Acest tutorial explică serviciile SOAP și REST de pe Parasoft. Veți învăța apatrii fără stat, securitatea SOAP peste REST, de ce REST este mai rapid decât SOAP etc.:
Am acoperit, de asemenea, eșantioane de cereri și răspunsul SOAP și REST în format XML și, respectiv, JSON.
Spre sfârșitul acestui tutorial, veți putea scrie programele dvs. JSON care au fost explicate cu diferite exemple de programe împreună cu conceptul JSON Path sau JSON Evaluator și Document Keys din Parasoft.
=> Consultați seria de tutoriale SOATest completă aici .
Acest tutorial descrie, de asemenea, diferitele verbe care sunt utilizate în Parasoft sau SOAtest Automation Tool, împreună cu exemplele de programare și codul lor de răspuns HTTP și utilizările respective. Veți putea înțelege cum să vă construiți SOAtest Suites într-un mod mai bun, care va fi tratat în detaliu în viitorul nostru tutorial.
De asemenea, puteți încerca să răspundeți la întrebările listate în partea de jos după ce ați parcurs acest tutorial.
Ce veți învăța:
Ce este serviciul SOAP?
SOAP înseamnă Protocol de acces la obiecte simple . Protocoalele nu sunt altceva decât un set de reguli pe care le definiți pentru un test. Este un protocol „stat-complet”, spre deosebire de REST, care implică utilizarea WSDL (Web Services Description Language) pentru a descrie serviciile web.
Toate cererile și răspunsurile din SOAP sunt realizate în XML (Extensible Markup Language). SOAP este mai sigur în comparație cu omologul său. Nu oferă nicio procesare independentă pentru diferite metode și acesta este motivul pentru care este denumit protocol „complet de stat”.
De ce SOAP este mai sigur?
Deși SOAP și REST acceptă ambele SSL (Secure Socket Layer) pentru protecția datelor, în timp ce face cererea, SOAP acceptă securitatea serviciilor web (cunoscută și sub denumirea de WS-Security sau WSS) pentru protecția la nivel de întreprindere care este absentă în serviciile REST. Securitatea serviciilor web (WS-Security, WSS) este o extensie la SOAP pentru a aplica securitatea serviciilor Web.
Un exemplu de solicitare de corp de SOAP
Parasoft TUP true
Avem un XML care va fi folosit ca o sarcină utilă pentru a forma corpul cererii SOAP. Orice limbaj XML constă din versiunea care ar trebui definită deasupra scriptului. Nu trebuie să vă faceți griji cu privire la etichete, deoarece toate fișierele XML vă permit să creați etichetele dvs., spre deosebire de HTML.
Dacă încercați să generați jetoanele printr-o cerere SOAP, atunci trebuie doar să furnizați parametrii necesari, cum ar fi ID-ul de utilizator și parola, împreună cu adresa URL pe care o accesați în corpul cererii sau XML sub etichetele dvs. personalizate.
Mai jos este captura de ecran a vizualizatorului de trafic al Parasoft (o componentă care vă permite să vedeți rezultatul).
(imagine sursă )
Caracteristici importante ale SOAP
Mai jos sunt enumerate câteva dintre caracteristicile proeminente ale SOAP:
# 1) Orice plic SOAP poate fi utilizat în servicii REST, cum ar fi simbolul generat, dar nu și invers. Aceasta înseamnă că, dacă ați creat un simbol folosind SOAP, atunci acel simbol poate fi folosit în REST (în secțiunea HTTP header manager => Autorizare). Dar nu puteți utiliza plicuri REST într-o cerere SOAP.
#Două) SOAP este mai sigur decât REST, deoarece folosește WS-Security pentru transmisie împreună cu Secure Socket Layer.
# 3) SOAP folosește XML doar pentru solicitare și răspuns. Nu folosește text simplu sau altele.
# 4) SOAP este complet de stat (nu apatrid), deoarece ia întreaga cerere în ansamblu, spre deosebire de REST, care asigură procesarea independentă a diferitelor metode. În SOAP nu există nicio procesare independentă.
Ce este serviciul REST?
REST înseamnă Transfer de stat reprezentativ . REST este o arhitectură „fără stat” care implică mai multe metode sau verbe în timp ce se ocupă de cereri și răspunsuri.
Toate cererile și răspunsurile din REST sunt realizate în XML, JSON (JavaScript Object Notation) sau Plain Text. REST este mai rapid decât SOAP din cauza implicării JSON (care este ușoară) în cererea / sarcina utilă a REST.
Fiecare metodă este procesată independent în REST, motiv pentru care este numită arhitectură „fără stat”.
De ce este REST mai rapid?
Natura apatridiei REST o face mai rapidă decât o săpun. Fiecare verb este procesat independent și folosește obiectul JSON, care este mult mai rapid atunci când treceți la un anumit câmp dintr-un document care conține mai mult de un milion de înregistrări.
Înainte de a începe despre metodele utilizate în REST, trebuie să știm despre JSON și calea JSON, deoarece este cel mai comun format de transmitere a datelor în REST.
Ce este JSON?
JSON înseamnă JavaScript Object Notation. Este un format care este frecvent utilizat în clientul REST.
Se autodescrie și este ușor de înțeles. Trebuie doar să treceți JSON în secțiunea de sarcină utilă a metodei REST. Este un format ușor de schimb de date care permite serviciilor REST să fie mult mai rapide chiar dacă are de-a face cu un milion de înregistrări.
Programare cu JSON
Mai jos este un exemplu de program cu un singur document numit „telefon”.
(imagine sursă )
Acesta este exemplul meu de program JSON în care trebuie să aduc valoarea tipului meu de telefon. Într-un astfel de scenariu, puteți utiliza două tehnici pentru a trece prin acel câmp. Unul este după calea JSON și celălalt este după cheia documentului.
# 1) În timp ce vă ocupați de calea JSON, puteți utiliza două metode:
$.phone(:1).type $('phone')(':1')('type')
#Două) Deoarece Parasoft nu permite calea JSON, putem folosi cheia documentului, care este puțin simplă atunci când parcurgeți. Treceți doar cheia documentului împreună cu adresa URL în fila resursă ca
phone.type
Trebuie doar să faceți clic pe butonul Adăugați în captura de ecran de mai jos și să introduceți phone.type și ați terminat.
În exemplul de mai jos, trebuie să parcurgeți ultimul element al câmpului de locație care este o matrice. Astfel, încercați să scrieți o cale JSON pentru aceasta.
java copiază matricea 2d într-o altă matrice
După cum puteți vedea în numerele de linie 37 și 39 (de mai sus), au fost scrise două căi JSON diferite pentru aceeași traversare până la ultimul element al câmpului de locație. În același mod, puteți să creați JSON (un document imbricat complex) și să încercați să scrieți calea JSON în scopuri practice.
REZULTAT:
(„Helsingborg”)
Puteți încerca cât de multe JSON doriți, într-un site web deschis numit Evaluator online JSON
Metode / Verbe în Restful Services
Serviciile REST oferă o gamă largă de metode care sunt, de asemenea, cunoscute sub numele de verbe pentru un tip diferit de cereri. Acestea includ în principal POST, PUT, PATCH, GET, DELETE, CUSTOM .
POST
Această metodă este responsabilă pentru crearea înregistrării. După executarea cu succes, codul de răspuns HTTP este 201.
Mai jos este exemplul JSON care ilustrează POST.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
Când trecem acest JSON ca un corp de solicitare, atunci acesta va crea documentul cu un cod de răspuns 201.
OBȚINE
Aceasta este o altă metodă sau verb care este folosit pentru a recupera documentul sau înregistrarea. După executarea cu succes a GET, codul de răspuns va fi 200. Acesta nu conține niciun corp de solicitare sau sarcină utilă.
Tot ce trebuie să faceți este să accesați aceeași adresă URL folosind metoda GET din fila Resurse a Parasoft folosind cheia documentului ca „Test”. Chiar dacă nu treceți nicio cheie de document, aceasta va prelua întregul document.
Să presupunem că trecem cheia documentului ca „Test.Test2”, apoi îmi va aduce următoarea înregistrare.
{ “Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
A PUNE
Această metodă este utilizată pentru actualizarea documentului și are un cod de răspuns 200 după executarea cu succes.
Deși POST și PUT nu diferă prea mult și totul depinde de dezvoltator în ceea ce privește modul în care doresc să codeze. În principal, dezvoltatorii folosesc metoda PUT atunci când doresc să actualizeze o anumită valoare de câmp.
De exemplu: Dacă dorim să schimbăm o anumită valoare în documentul JSON de mai sus inserat de POST, atunci vom trece întregul corp de solicitare cu valoarea actualizată folosind metoda PUT.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
Când vom vedea răspunsul în vizualizatorul de trafic, atunci valoarea câmpului va fi actualizată ca
„Platformă”: „Windows actualizat”
PATCH (PERSONALIZAT)
Aceasta este o altă metodă care este utilizată exclusiv pentru actualizarea înregistrării. Majoritatea dezvoltatorilor preferă această metodă în locul metodei PUT, deoarece utilizează cel mai bine resursele. Dacă doriți să actualizați o anumită valoare de câmp din documentul dvs., tot ce trebuie să faceți este să treceți doar acel câmp cu valoarea actualizată a înregistrării.
Să presupunem că, dacă dorim să actualizăm înregistrarea POST, vom folosi doar următorul corp de solicitare în timp ce utilizăm PATCH.
{“Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
După cum ați observat, aici nu am trecut valorile câmpului „Test”, spre deosebire de metoda PUT. Executarea cu succes vă va oferi un cod de răspuns 200 sau 201.
ȘTERGE
După cum sugerează și numele, va șterge înregistrarea cunoscută și sub numele de preferințe. Acesta nu conține niciun corp de solicitare precum GET și are adesea codul de răspuns 203 (Fără conținut). Dacă trebuie să ștergem întregul document, atunci în JSON de mai sus, atunci vom trece doar cheia documentului ca.
Test
Aceasta va șterge întregul document. Dacă nu trecem deloc cheia documentului, atunci va șterge tot documentul.
Capcanele intervievatorului
Q # 1) Majoritatea intervievatorilor încearcă să confunde când vă întreabă că au obținut un cod de răspuns la operația de ștergere cu succes ca 200 în loc de 204. În acest fel de situație, ce ar trebui să fac? Ar trebui să-l raportez ca o eroare?
Răspuns: Răspunsul la întrebarea de mai sus este simplu. Nu trebuie să ridici un bug. În schimb, puteți vorbi cu dezvoltatorul sau puteți încerca să observați celălalt răspuns la operația de ștergere. Un cod de răspuns 200 denotă întotdeauna operațiunea reușită, iar 204 este specific pentru DELETE. S-ar putea să existe o șansă ca dezvoltatorii să folosească 200 pentru toate operațiunile de succes.
Q # 2) Cum verific dacă valorile câmpului sunt corecte sau nu, fără a utiliza o bază de date într-o cerere JSON de 1 milion de linii de cod?
Răspuns: Răspunsul este prin trimiterea cheii de document în operația GET. Eșantionul URL va arăta așa cum se arată mai jos:
https://resource-name.com/context-key/document-key
În adresa URL de mai sus, cheia de context va prelua în mod unic acel JSON special de 1 milion de înregistrări, iar cheia de document va prelua valoarea câmpului particular din înregistrarea respectivă.
Î. # 3) Dacă nu specific niciun nume de document deasupra JSON-ului meu, ce ar trebui să trec ca cheie de document pentru a prelua întregul document?
Răspuns: Puteți trece orice. Da, exact. Dacă nu aveți niciun nume de document specificat și dacă există doar câmpuri și valori care sunt prezente în documentul dvs., atunci puteți transmite orice valoare șir. Șirul respectiv va fi tratat automat ca cheie de document.
rezumat
Până acum, ar trebui să aveți o idee corectă despre serviciile web SOAP și REST, structura lor, diferențele majore dintre ele, caracteristicile și utilizarea acestora.
Mai mult, în acest tutorial, am acoperit cele mai comune / importante metode (cunoscute și sub numele de verbe) care sunt utilizate în serviciile REST împreună cu programarea JSON și calea JSON în scopuri de evaluare.
PREV Tutorial | NEXT Tutorial
Lectură recomandată
- Tutorial JSON: Introducere și ghid complet pentru începători
- O abordare simplă pentru testarea XML către baza de date
- Cele mai bune 10 instrumente de testare API în 2021 (SOAP și REST API Testing Tools)
- 15+ Tutoriale SoapUI: Cel mai bun instrument de testare API pentru servicii web
- 7 Caracteristici importante ale SoapUI și SoapUI Pro - Tutorial 2
- Cum se creează un serviciu simulat și un răspuns dinamic în SoapUI
- Cum să creați un proiect REST în SoapUI Pro: Tutorial nr. 13
- Proces de descărcare și instalare SoapUI pas cu pas - Tutorial SoapUI # 3
- Top 45 Întrebări și răspunsuri pentru interviuri pentru servicii web (RESTful, SOAP, întrebări de securitate)