soap vs rest difference
Questo tutorial spiega i servizi SOAP e REST su Parasoft. Imparerai a conoscere Stateless vs Stateful, Sicurezza di SOAP su REST, Perché REST è più veloce di SOAP, ecc .:
Abbiamo anche coperto le richieste di esempio e la risposta di SOAP e REST rispettivamente nei formati XML e JSON.
Verso la fine di questo tutorial, sarai in grado di scrivere i tuoi programmi JSON che sono stati spiegati con diversi programmi di esempio insieme al concetto di JSON Path o JSON Evaluator e Document Keys di Parasoft.
=> Dai un'occhiata alla serie completa di tutorial SOATest qui .
Questo tutorial descrive anche i diversi verbi utilizzati in Parasoft o SOAtest Automation Tool insieme agli esempi di programmazione e al rispettivo codice di risposta HTTP e agli usi. Sarai in grado di capire come costruire le tue suite SOAtest in un modo migliore che sarà trattato in dettaglio nel nostro prossimo tutorial.
Puoi anche provare a rispondere alle domande elencate in fondo dopo aver seguito questo tutorial.
Cosa imparerai:
Cos'è il servizio SOAP?
SOAP sta per Simple Object Access Protocol . I protocolli non sono altro che un insieme di regole che definisci per un test. È un protocollo 'state-full', a differenza del REST che prevede l'uso di WSDL (Web Services Description Language) per descrivere i servizi web.
Tutte le richieste e le risposte in SOAP vengono eseguite in XML (Extensible Markup Language). SOAP è più sicuro rispetto alla sua controparte. Non fornisce alcuna elaborazione indipendente per metodi diversi e questo è il motivo per cui è chiamato protocollo 'state-full'.
Perché SOAP è più sicuro?
Sebbene SOAP e REST supportino entrambi SSL (Secure Socket Layer) per la protezione dei dati, mentre effettua la richiesta, SOAP supporta Web Services Security (noto anche come WS-Security o WSS) per la protezione a livello aziendale che è assente nei servizi REST. Web Services Security (WS-Security, WSS) è un'estensione di SOAP per applicare la sicurezza ai servizi Web.
Un corpo di richiesta di esempio di SOAP
Parasoft TUP true
Abbiamo un XML che verrà utilizzato come payload per formare il corpo della richiesta del SOAP. Qualsiasi linguaggio XML è costituito dalla versione che dovrebbe essere definita sopra lo script. Non devi preoccuparti dei tag, poiché tutti i file XML ti consentono di creare i tuoi tag, a differenza dell'HTML.
Se stai tentando di generare i token tramite una richiesta SOAP, devi solo fornire i parametri necessari come l'ID utente e la password insieme all'URL che stai premendo nel corpo della richiesta o l'XML sotto i tag personalizzati.
Di seguito è riportato lo screenshot del visualizzatore del traffico di Parasoft (un componente che ti permette di vedere il risultato).
(Immagine fonte )
Caratteristiche di spicco di SOAP
Di seguito sono elencate alcune delle caratteristiche principali di SOAP:
# 1) Qualsiasi busta SOAP può essere utilizzata nei servizi REST come il token generato ma non viceversa. Ciò significa che se hai creato un token utilizzando SOAP, quel token può essere utilizzato in REST (nella sezione del gestore dell'intestazione HTTP => Autorizzazione). Ma non è possibile utilizzare buste REST in una richiesta SOAP.
#Due) SOAP è più sicuro di REST poiché utilizza WS-Security per la trasmissione insieme a Secure Socket Layer.
# 3) SOAP utilizza solo XML per la richiesta e la risposta. Non utilizza testo normale o altro.
# 4) SOAP è completo di stato (non stateless) poiché accetta l'intera richiesta nel suo insieme, a differenza di REST che fornisce l'elaborazione indipendente di metodi diversi. Nessuna elaborazione indipendente è presente in SOAP.
Cos'è il servizio REST?
REST sta per Representational State Transfer . REST è un'architettura 'stateless' che coinvolge più metodi o verbi durante la gestione di richieste e risposte.
Tutte le richieste e le risposte in REST vengono eseguite in XML, JSON (JavaScript Object Notation) o Plain Text. REST è più veloce di SOAP a causa del coinvolgimento di JSON (che è leggero) nella richiesta / payload di REST.
Ogni metodo viene elaborato in modo indipendente in REST, motivo per cui viene chiamato architettura 'stateless'.
Perché REST è più veloce?
La natura di apolidia di REST lo rende più veloce di un SOAP. Ogni verbo viene elaborato in modo indipendente e fa uso di JSON Object che è molto più veloce quando si attraversa un campo particolare in un documento contenente più di un milione di record.
Prima di iniziare con i metodi utilizzati in REST, è necessario conoscere il percorso JSON e JSON poiché è il formato più comune di trasmissione dei dati in REST.
Cos'è JSON?
JSON sta per JavaScript Object Notation. È un formato comunemente utilizzato nel client REST.
È auto-descrittivo e anche facile da capire. Devi solo passare il tuo JSON nella sezione del payload del metodo REST. È un formato di scambio dati leggero che consente ai servizi REST di essere molto più veloci anche se si tratta di un milione di record.
Programmazione con JSON
Di seguito è riportato un programma di esempio con un solo documento denominato 'telefono'.
(Immagine fonte )
Questo è il mio programma JSON di esempio in cui devo recuperare il valore del mio tipo di telefono. In uno scenario del genere, puoi utilizzare due tecniche per superare quel campo. Uno è per JSON Path e l'altro è per chiave del documento.
# 1) Durante la gestione del percorso JSON, puoi utilizzare due metodi:
$.phone(:1).type $('phone')(':1')('type')
#Due) Poiché Parasoft non consente il percorso JSON, possiamo utilizzare la chiave del documento che è un po 'semplice durante l'attraversamento. Basta passare la chiave del documento insieme all'URL nella scheda delle risorse come
phone.type
Devi solo fare clic sul pulsante Aggiungi nello screenshot qui sotto e inserire phone.type e il gioco è fatto.
Nell'esempio seguente, devi attraversare l'ultimo elemento del campo di posizione che è un array. Quindi, prova a scrivere un percorso JSON per esso.
dfs utilizzando lo stack c ++
Come puoi vedere nei numeri di riga 37 e 39 (sopra), sono stati scritti due diversi percorsi JSON per lo stesso attraversamento fino all'ultimo elemento del campo posizione. Allo stesso modo, puoi creare il tuo JSON (un documento nidificato complesso) e provare a scrivere il percorso JSON per scopi pratici.
RISULTATO:
('Helsingborg')
Puoi provare tutti i JSON che desideri, in un sito Web aperto chiamato Valutatore online JSON
Metodi / verbi nei servizi riposanti
I servizi REST forniscono un'ampia gamma di metodi noti anche come verbi per un diverso tipo di richieste. Questi includono principalmente POST, PUT, PATCH, GET, DELETE, CUSTOM .
INVIARE
Questo metodo è responsabile della creazione del record. In caso di corretta esecuzione, il codice di risposta HTTP è 201.
Di seguito è riportato il JSON di esempio che illustra il POST.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
Quando passiamo questo JSON come corpo della richiesta, creerà il documento con un codice di risposta 201.
OTTENERE
Questo è un altro metodo o verbo utilizzato per recuperare il documento o il record. In caso di corretta esecuzione di GET, il codice di risposta sarà 200. Questo non contiene alcun corpo della richiesta o payload.
Tutto quello che devi fare è premere lo stesso URL usando il metodo GET nella scheda delle risorse di Parasoft usando il tasto del documento come 'Test'. Anche se non passi alcuna chiave del documento, verrà recuperato l'intero documento.
Supponiamo di passare la chiave del documento come 'Test.Test2', quindi mi recupererà il record seguente.
{ “Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
METTERE
Questo metodo viene utilizzato per aggiornare il documento e ha un codice di risposta 200 dopo l'esecuzione riuscita.
Sebbene POST e PUT non differiscano molto e tutto dipende dallo sviluppatore su come vogliono programmare. Per lo più, gli sviluppatori utilizzano il metodo PUT quando desiderano aggiornare un valore di campo.
Per esempio: Se vogliamo modificare un valore nel documento JSON sopra inserito da POST, passeremo l'intero corpo della richiesta con il valore aggiornato utilizzando il metodo PUT.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
Quando vediamo la risposta nel visualizzatore del traffico, il valore del campo verrà aggiornato come
'Piattaforma': 'Windows aggiornato'
PATCH (PERSONALIZZATO)
Questo è un altro metodo utilizzato esclusivamente per aggiornare il record. La maggior parte degli sviluppatori preferisce questo metodo al metodo PUT poiché utilizza al meglio le risorse. Se desideri aggiornare un valore di campo nel tuo documento, tutto ciò che devi fare è passare solo quel campo con il valore aggiornato del record.
Diciamo, se vogliamo aggiornare il record POST, utilizzeremo solo il seguente corpo della richiesta durante l'utilizzo di PATCH.
{“Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
Come hai notato, qui non abbiamo passato i valori di campo di “Test”, a differenza del metodo PUT. L'esecuzione corretta ti darà un codice di risposta 200 o 201.
ELIMINA
Come suggerisce il nome stesso, eliminerà il record noto anche come preferenze. Non contiene alcun corpo della richiesta come GET e spesso ha il codice di risposta 203 (Nessun contenuto). Se dobbiamo eliminare l'intero documento nel JSON sopra, passeremo semplicemente la chiave del documento come.
Test
Questo cancellerà l'intero documento. Se non passiamo affatto la chiave del documento, eliminerà anche l'intero documento.
Trappole dell'intervistatore
D # 1) La maggior parte degli intervistatori cerca di confondere quando ti chiedono di aver ricevuto un codice di risposta dell'operazione di cancellazione con successo come 200 invece di 204. In questo tipo di situazione, cosa devo fare? Devo segnalarlo come un bug?
Risposta: La risposta alla domanda precedente è semplice. Non devi sollevare un bug. Invece, puoi parlare con lo sviluppatore o provare a osservare l'altra risposta dell'operazione di eliminazione. Un codice di risposta 200 denota sempre l'operazione riuscita e 204 è specifico per DELETE. Potrebbe esserci una possibilità che gli sviluppatori abbiano utilizzato 200 per tutte le operazioni di successo.
D # 2) Come posso verificare se i valori dei campi particolari sono corretti o meno senza utilizzare un database in una richiesta JSON di 1 milione di righe di codice?
Risposta: La risposta è inviando la chiave del documento nell'operazione GET. L'URL di esempio apparirà come mostrato di seguito:
https://resource-name.com/context-key/document-key
Nell'URL sopra, la tua chiave di contesto recupererà in modo univoco quel particolare JSON di 1 milione di record e la chiave del documento recupererà il particolare valore di campo in quel record.
D # 3) Se non specifichi alcun nome di documento sopra il mio JSON, cosa dovrei passare come chiave del documento per recuperare l'intero documento?
Risposta: Puoi passare qualsiasi cosa. Si, esattamente. Se non è stato specificato alcun nome di documento e se sono presenti solo campi e valori nel documento, è possibile passare qualsiasi valore di stringa. Quella stringa verrà considerata automaticamente come la chiave del documento.
Sommario
A questo punto, dovresti avere una buona idea dei servizi web SOAP e REST, della loro struttura, delle principali differenze tra loro, delle loro caratteristiche e del loro utilizzo.
Inoltre, in questo tutorial, abbiamo coperto i metodi più comuni / importanti (noti anche come verbi) utilizzati nei servizi REST insieme alla programmazione JSON e al percorso JSON a scopo di valutazione.
Tutorial PREV | PROSSIMO Tutorial
Lettura consigliata
- Tutorial JSON: introduzione e guida completa per principianti
- Un approccio semplice per XML al test di database
- 10 migliori strumenti di test API nel 2021 (strumenti di test API SOAP e REST)
- Oltre 15 tutorial SoapUI: il miglior strumento di test delle API dei servizi Web
- 7 Caratteristiche importanti di SoapUI e SoapUI Pro - Tutorial 2
- Come creare un servizio simulato e una risposta dinamica in SoapUI
- Come creare un progetto REST in SoapUI Pro: Tutorial # 13
- Processo di download e installazione di SoapUI passo dopo passo - Tutorial SoapUI # 3
- Le 45 principali domande e risposte ai colloqui sui servizi Web (RESTful, SOAP, domande di sicurezza)