soap vs rest difference
Ten samouczek wyjaśnia usługi SOAP i REST w Parasoft. Nauczysz się bezstanowych vs stanowych, bezpieczeństwa SOAP over REST, dlaczego REST jest szybszy niż SOAP itp .:
Omówiliśmy również przykładowe żądania i odpowiedzi SOAP i REST odpowiednio w formacie XML i JSON.
Pod koniec tego samouczka będziesz mógł pisać swoje programy JSON, które zostały wyjaśnione za pomocą różnych przykładowych programów, wraz z koncepcją JSON Path lub JSON Evaluator i Document Keys firmy Parasoft.
=> Sprawdź całą serię samouczków SOATest tutaj .
W tym samouczku opisano również różne czasowniki używane w narzędziu Parasoft lub SOAtest Automation Tool wraz z przykładami programowania oraz odpowiadającym im kodem odpowiedzi HTTP i zastosowaniami. Będziesz w stanie lepiej zrozumieć, jak budować pakiety SOAtest, co zostanie szczegółowo omówione w naszym nadchodzącym samouczku.
Po przeczytaniu tego samouczka możesz również spróbować odpowiedzieć na pytania wymienione u dołu.
Czego się nauczysz:
Co to jest usługa SOAP?
SOAP to skrót od Simple Object Access Protocol . Protokoły to nic innego jak zestaw reguł, które definiujesz dla testu. Jest to protokół „pełnego stanu”, w przeciwieństwie do REST, który obejmuje użycie WSDL (Web Services Description Language) do opisu usług sieciowych.
Wszystkie żądania i odpowiedzi w SOAP są wykonywane w XML (Extensible Markup Language). SOAP jest bezpieczniejszy w porównaniu do swojego odpowiednika. Nie zapewnia żadnego niezależnego przetwarzania dla różnych metod i dlatego jest nazywany protokołem „z pełnym stanem”.
Dlaczego SOAP jest bezpieczniejszy?
Chociaż SOAP i REST obsługują SSL (Secure Socket Layer) w celu ochrony danych, podczas wysyłania żądania SOAP obsługuje zabezpieczenia usług sieci Web (znane również jako WS-Security lub WSS) w celu zapewnienia ochrony na poziomie przedsiębiorstwa, której nie ma w usługach REST. Zabezpieczenia usług sieci Web (WS-Security, WSS) to rozszerzenie protokołu SOAP w celu zastosowania zabezpieczeń do usług sieci Web.
Przykładowa treść żądania protokołu SOAP
Parasoft TUP true
Mamy XML, który zostanie użyty jako ładunek do utworzenia treści żądania SOAP. Każdy język XML składa się z wersji, która powinna być zdefiniowana w górnej części skryptu. Nie musisz się martwić o tagi, ponieważ wszystkie pliki XML umożliwiają tworzenie tagów, w przeciwieństwie do HTML.
Jeśli próbujesz wygenerować tokeny za pomocą żądania SOAP, wystarczy podać niezbędne parametry, takie jak identyfikator użytkownika i hasło, wraz z adresem URL, który trafiasz w treści żądania lub XML pod niestandardowymi tagami.
Poniżej przedstawiono zrzut ekranu przeglądarki ruchu Parasoft (składnik, który pozwala zobaczyć wynik).
(wizerunek źródło )
Istotne cechy SOAP
Poniżej wymieniono niektóre z najważniejszych funkcji SOAP:
# 1) Dowolna koperta SOAP może być używana w usługach REST, takich jak wygenerowany token, ale nie odwrotnie. Oznacza to, że jeśli utworzyłeś token za pomocą SOAP, możesz go użyć w REST (w sekcji Menedżer nagłówków HTTP => Autoryzacja). Ale nie możesz używać kopert REST w żądaniu SOAP.
#dwa) SOAP jest bezpieczniejszy niż REST, ponieważ wykorzystuje WS-Security do transmisji wraz z Secure Socket Layer.
# 3) SOAP używa XML tylko do żądania i odpowiedzi. Nie używa zwykłego tekstu ani innych.
# 4) SOAP jest pełny (nie bezstanowy), ponieważ przyjmuje całe żądanie jako całość, w przeciwieństwie do REST, który zapewnia niezależne przetwarzanie różnych metod. W SOAP nie ma niezależnego przetwarzania.
Co to jest usługa REST?
REST oznacza Representational State Transfer . REST to architektura „bezstanowa” obejmująca wiele metod lub czasowników podczas obsługi żądań i odpowiedzi.
Wszystkie żądania i odpowiedzi w REST są wykonywane w formacie XML, JSON (JavaScript Object Notation) lub zwykłym tekście. REST jest szybszy niż SOAP ze względu na udział JSON (który jest lekki) w żądaniu / ładunku REST.
Każda metoda jest przetwarzana niezależnie w REST, dlatego nazywa się ją architekturą „bezstanową”.
Dlaczego REST jest szybszy?
Bezpaństwowość REST sprawia, że jest szybszy niż SOAP. Każdy czasownik jest przetwarzany niezależnie i wykorzystuje obiekt JSON, który jest znacznie szybszy podczas przechodzenia do dowolnego konkretnego pola w dokumencie zawierającym ponad milion rekordów.
Zanim zaczniemy o metodach używanych w REST, musimy wiedzieć o ścieżce JSON i JSON, ponieważ jest to najpopularniejszy format przesyłania danych w REST.
Co to jest JSON?
JSON to skrót od JavaScript Object Notation. Jest to format, który jest powszechnie używany w kliencie REST.
Jest samoopisujące i łatwe do zrozumienia. Musisz tylko przekazać swój kod JSON w sekcji ładunku metody REST. Jest to lekki format wymiany danych, który pozwala usługom REST działać znacznie szybciej, nawet jeśli ma do czynienia z milionem rekordów.
Programowanie z JSON
Poniżej znajduje się przykładowy program z tylko jednym dokumentem o nazwie „telefon”.
(wizerunek źródło )
To jest mój przykładowy program JSON, w którym muszę pobrać wartość mojego typu telefonu. W takim scenariuszu możesz użyć dwóch technik, aby przejść przez to pole. Jeden jest przez JSON Path, a drugi przez klucz dokumentu.
# 1) Mając do czynienia ze ścieżką JSON, możesz skorzystać z dwóch metod:
$.phone(:1).type $('phone')(':1')('type')
#dwa) Ponieważ Parasoft nie zezwala na ścieżkę JSON, możemy użyć klucza dokumentu, który jest nieco prosty podczas przeglądania. Po prostu przekaż klucz dokumentu wraz z adresem URL na karcie zasobów jako
phone.type
Wystarczy kliknąć przycisk dodawania na poniższym zrzucie ekranu i wpisać phone.type i gotowe.
W poniższym przykładzie musisz przejść przez ostatni element pola lokalizacji, którym jest tablica. Dlatego spróbuj napisać dla niego ścieżkę JSON.
c ++ pauza na 1 sekundę
Jak widać w wierszach o numerach 37 i 39 (powyżej), dwie różne ścieżki JSON zostały zapisane dla tego samego przejścia do ostatniego elementu pola lokalizacji. W ten sam sposób możesz utworzyć JSON (złożony dokument zagnieżdżony) i spróbować napisać ścieżkę JSON do celów praktycznych.
WYNIK:
(„Helsingborg”)
Możesz wypróbować dowolną liczbę JSON w otwartej witrynie o nazwie Ewaluator JSON online
Metody / czasowniki w Restful Services
Usługi REST zapewniają szeroką gamę metod, które są również znane jako czasowniki dla różnych typów żądań. Należą do nich głównie POST, PUT, PATCH, GET, DELETE, CUSTOM .
POCZTA
Ta metoda jest odpowiedzialna za tworzenie rekordu. Po pomyślnym wykonaniu kod odpowiedzi HTTP to 201.
Poniżej znajduje się przykładowy kod JSON ilustrujący POST.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
Kiedy przekażemy ten JSON jako treść żądania, utworzy on dokument z kodem odpowiedzi 201.
OTRZYMAĆ
To jest inna metoda lub czasownik, który jest używany do pobierania dokumentu lub rekordu. Po pomyślnym wykonaniu GET kod odpowiedzi będzie miał wartość 200. Nie zawiera on treści żądania ani ładunku.
Wszystko, co musisz zrobić, to po prostu kliknąć ten sam adres URL za pomocą metody GET w zakładce zasobów Parasoft, używając klucza dokumentu jako „Test”. Nawet jeśli nie przekażesz żadnego klucza dokumentu, pobierze cały dokument.
Powiedzmy, że przekazujemy klucz dokumentu jako „Test.Test2”, a następnie pobierze on następujący rekord.
{ “Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
POŁOŻYĆ
Ta metoda służy do aktualizacji dokumentu i po pomyślnym wykonaniu ma kod odpowiedzi 200.
Chociaż POST i PUT nie różnią się zbytnio i wszystko zależy od programisty, jak chcą kodować. Głównie programiści używają metody PUT, gdy chcą zaktualizować jakąś wartość pola.
Na przykład: Jeśli chcemy zmienić jakąś wartość w powyższym dokumencie JSON wstawionym przez POST, przekażemy całą treść żądania ze zaktualizowaną wartością za pomocą metody PUT.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
Kiedy zobaczymy odpowiedź w przeglądarce ruchu, wartość pola zostanie zaktualizowana jako
„Platforma”: „Zaktualizowany system Windows”
PATCH (NIESTANDARDOWE)
Jest to kolejna metoda używana wyłącznie do aktualizowania rekordu. Większość programistów preferuje tę metodę od metody PUT, ponieważ zapewnia ona najlepsze wykorzystanie zasobów. Jeśli chcesz zaktualizować jakąś wartość pola w dokumencie, wszystko, co musisz zrobić, to przekazać tylko to pole ze zaktualizowaną wartością rekordu.
Powiedzmy, że jeśli chcemy zaktualizować rekord POST, podczas korzystania z PATCH użyjemy tylko następującej treści żądania.
{“Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
Jak zauważyłeś, tutaj nie przekazaliśmy wartości pola „Test”, w przeciwieństwie do metody PUT. Pomyślne wykonanie da 200 lub 201 kodu odpowiedzi.
KASOWAĆ
Jak sama nazwa wskazuje, usunie on rekord znany również jako preferencje. Nie zawiera treści żądania, takich jak GET, i często ma kod odpowiedzi 203 (brak treści). Jeśli musimy usunąć cały dokument, to w powyższym JSON, po prostu przekażemy klucz dokumentu jako.
Test
Spowoduje to usunięcie całego dokumentu. Jeśli w ogóle nie przekażemy klucza dokumentu, to również usunie cały dokument.
Pułapki ankietera
P # 1) Większość ankieterów stara się zmylić, gdy pytają cię, że otrzymali kod odpowiedzi na pomyślną operację usunięcia jako 200 zamiast 204. Co powinienem zrobić w tego rodzaju sytuacji? Czy powinienem zgłosić to jako błąd?
Odpowiedź: Odpowiedź na powyższe pytanie jest prosta. Nie musisz zgłaszać błędu. Zamiast tego możesz porozmawiać z programistą lub spróbować obserwować inną odpowiedź operacji usuwania. Kod odpowiedzi 200 zawsze oznacza pomyślną operację, a 204 jest specyficzny dla DELETE. Jest szansa, że programiści użyli 200 do wszystkich udanych operacji.
P # 2) Jak sprawdzić, czy poszczególne wartości pól są poprawne, czy nie, bez użycia bazy danych w żądaniu JSON zawierającym 1 milion wierszy kodu?
Odpowiedź: Odpowiedzią jest wysłanie klucza dokumentu w operacji GET. Przykładowy adres URL będzie wyglądał tak, jak pokazano poniżej:
https://resource-name.com/context-key/document-key
W powyższym adresie URL Twój klucz kontekstu w unikalny sposób pobierze ten konkretny kod JSON zawierający 1 milion rekordów, a klucz dokumentu pobierze określoną wartość pola w tym rekordzie.
P # 3) Jeśli nie podam nazwy dokumentu na górze mojego JSON, co powinienem podać jako klucz dokumentu, aby pobrać cały dokument?
Odpowiedź: Możesz przekazać wszystko. Tak, dokładnie. Jeśli nie masz określonej nazwy dokumentu i jeśli w dokumencie są tylko pola i wartości, możesz przekazać dowolną wartość ciągu. Ten ciąg zostanie automatycznie potraktowany jako klucz twojego dokumentu.
Podsumowanie
Do tej pory powinieneś mieć dobre pojęcie o usługach sieciowych SOAP i REST, ich strukturze, głównych różnicach między nimi, ich funkcjach i zastosowaniu.
Ponadto w tym samouczku omówiliśmy najpopularniejsze / najważniejsze metody (znane również jako czasowniki), które są używane w usługach REST wraz z programowaniem JSON i ścieżką JSON do celów oceny.
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Samouczek JSON: wprowadzenie i kompletny przewodnik dla początkujących
- Proste podejście do testów XML w bazach danych
- 10 najlepszych narzędzi do testowania API w 2021 roku (narzędzia testowe SOAP i REST API)
- Ponad 15 samouczków SoapUI: Najlepsze narzędzie do testowania interfejsu API usług internetowych
- 7 ważnych funkcji SoapUI i SoapUI Pro - samouczek 2
- Jak utworzyć usługę próbną i odpowiedź dynamiczną w SoapUI
- Jak stworzyć projekt REST w SoapUI Pro: samouczek nr 13
- Proces pobierania i instalacji SoapUI krok po kroku - Samouczek SoapUI nr 3
- 45 najczęściej zadawanych pytań i odpowiedzi dotyczących usług internetowych (RESTful, SOAP, pytania dotyczące bezpieczeństwa)