soap vs rest difference
이 튜토리얼은 Parasoft의 SOAP 및 REST 서비스에 대해 설명합니다. Stateless vs Stateful, REST를 통한 SOAP 보안, REST가 SOAP보다 빠른 이유 등을 학습합니다.
또한 샘플 요청과 XML 및 JSON 형식의 SOAP 및 REST 응답도 다루었습니다.
이 튜토리얼이 끝나면 Parasoft의 JSON Path 또는 JSON Evaluator 및 Document Keys 개념과 함께 다양한 예제 프로그램으로 설명 된 JSON 프로그램을 작성할 수 있습니다.
=> 여기에서 전체 SOATest 자습서 시리즈를 확인하십시오. .
이 자습서에서는 프로그래밍 예제와 각각의 HTTP 응답 코드 및 사용법과 함께 Parasoft 또는 SOAtest 자동화 도구에서 사용되는 다양한 동사를 설명합니다. 향후 튜토리얼에서 자세히 다룰 더 나은 방식으로 SOAtest Suite를 구축하는 방법을 이해할 수 있습니다.
이 튜토리얼을 마치면 하단에 나열된 질문에 답할 수도 있습니다.
학습 내용 :
SOAP 서비스 란?
SOAP는 Simple Object Access Protocol을 나타냅니다. . 프로토콜은 테스트에 대해 정의하는 일련의 규칙에 불과합니다. 웹 서비스를 설명하기 위해 WSDL (Web Services Description Language)을 사용하는 REST와는 달리 'state-full'프로토콜입니다.
SOAP의 모든 요청과 응답은 XML (Extensible Markup Language)로 수행됩니다. SOAP는 대응에 비해 더 안전합니다. 다른 메서드에 대해 독립적 인 처리를 제공하지 않으며 이것이 '상태 전체'프로토콜이라고하는 이유입니다.
SOAP가 더 안전한 이유는 무엇입니까?
SOAP와 REST는 모두 데이터 보호를 위해 SSL (Secure Socket Layer)을 지원하지만 요청하는 동안 SOAP는 REST 서비스에없는 엔터프라이즈 수준 보호를 위해 웹 서비스 보안 (WS- 보안 또는 WSS라고도 함)을 지원합니다. 웹 서비스 보안 (WS-Security, WSS)은 웹 서비스에 보안을 적용하기위한 SOAP의 확장입니다.
SOAP의 샘플 요청 본문
Parasoft TUP true
SOAP의 요청 본문을 형성하기위한 페이로드로 사용될 XML이 있습니다. 모든 XML 언어는 스크립트 위에 정의되어야하는 버전으로 구성됩니다. HTML과 달리 모든 XML 파일을 사용하여 태그를 만들 수 있으므로 태그에 대해 걱정할 필요가 없습니다.
SOAP 요청을 통해 토큰을 생성하려는 경우 사용자 ID 및 비밀번호와 같은 필수 매개 변수를 요청 본문 또는 사용자 정의 된 태그 아래의 XML에서 조회하는 URL과 함께 제공하면됩니다.
아래는 Parasoft의 트래픽 뷰어 스크린 샷입니다. (결과를 볼 수있는 구성 요소).
(영상 출처 )
SOAP의 두드러진 특징
다음은 SOAP의 주요 기능 중 일부입니다.
#1) 모든 SOAP 봉투는 생성 된 토큰과 같은 REST 서비스에서 사용할 수 있지만 그 반대의 경우도 마찬가지입니다. 즉, SOAP를 사용하여 토큰을 만든 경우 해당 토큰을 REST에서 사용할 수 있습니다 (HTTP 헤더 관리자 섹션 => 권한 부여 아래). 그러나 SOAP 요청에서 REST 봉투를 사용할 수 없습니다.
#두) SOAP는 Secure Socket Layer와 함께 전송에 WS-Security를 사용하므로 REST보다 안전합니다.
#삼) SOAP는 요청 및 응답에 XML 만 사용합니다. 일반 텍스트 또는 기타를 사용하지 않습니다.
# 4) SOAP는 다른 메서드의 독립적 인 처리를 제공하는 REST와 달리 전체 요청을 전체적으로 취하므로 상태가 가득 차 (상태 비 저장이 아님)입니다. SOAP에는 독립적 인 처리가 없습니다.
REST 서비스 란?
REST는 Representational State Transfer를 나타냅니다. . REST는 요청 및 응답을 처리하는 동안 여러 메서드 또는 동사를 포함하는 '상태 비 저장'아키텍처입니다.
REST의 모든 요청과 응답은 XML, JSON (JavaScript Object Notation) 또는 일반 텍스트로 수행됩니다. REST는 REST의 요청 / 페이로드에 JSON (경량)이 포함되어 있기 때문에 SOAP보다 빠릅니다.
각 메서드는 REST에서 독립적으로 처리되므로 '상태 비 저장'아키텍처라고합니다.
REST가 더 빠른 이유는 무엇입니까?
REST의 상태 비 저장 특성은 SOAP보다 빠릅니다. 각 동사는 독립적으로 처리되며 백만 개 이상의 레코드를 포함하는 문서의 특정 필드로 이동할 때 훨씬 더 빠른 JSON 개체를 사용합니다.
REST에서 사용되는 메서드에 대해 시작하기 전에 REST에서 데이터를 전송하는 가장 일반적인 형식 인 JSON 및 JSON 경로에 대해 알아야합니다.
JSON이란 무엇입니까?
JSON은 JavaScript Object Notation을 나타냅니다. REST 클라이언트에서 일반적으로 사용되는 형식입니다.
자기 설명적이고 이해하기 쉽습니다. REST 메서드의 페이로드 섹션에 JSON을 전달하기 만하면됩니다. 백만 개의 레코드를 처리하는 경우에도 REST 서비스를 훨씬 더 빠르게 할 수있는 경량 데이터 교환 형식입니다.
JSON으로 프로그래밍
다음은 '전화'라는 문서가 하나 뿐인 샘플 프로그램입니다.
(영상 출처 )
이것은 내 전화 유형의 값을 가져와야하는 샘플 JSON 프로그램입니다. 이러한 시나리오에서는 두 가지 기술을 사용하여 해당 필드를 통과 할 수 있습니다. 하나는 JSON 경로에 의한 것이고 다른 하나는 문서 키에 의한 것입니다.
# 1) JSON 경로를 처리하는 동안 두 가지 방법을 사용할 수 있습니다.
$.phone(:1).type $('phone')(':1')('type')
#두) Parasoft는 JSON 경로를 허용하지 않으므로 순회 할 때 약간 간단한 문서 키를 사용할 수 있습니다. 리소스 탭의 URL과 함께 문서 키를 다음과 같이 전달하십시오.
phone.type
아래 스크린 샷에서 추가 버튼을 클릭하고 phone.type을 입력하기 만하면됩니다.
아래 예에서는 배열 인 위치 필드의 마지막 요소를 통과해야합니다. 따라서 JSON 경로를 작성하십시오.
YouTube에서 비디오를 다운로드하는 사이트
37 번과 39 번 줄 (위)에서 볼 수 있듯이 위치 필드의 마지막 요소까지 동일한 순회에 대해 두 개의 다른 JSON 경로가 작성되었습니다. 같은 방법으로 JSON (복잡한 중첩 문서)을 만들고 연습 목적으로 JSON 경로를 작성해 볼 수 있습니다.
결과:
( '헬싱 보리')
오픈 웹 사이트에서 원하는만큼 JSON을 시도 할 수 있습니다. JSON 온라인 평가자
편안한 서비스의 방법 / 동사
REST 서비스는 다양한 유형의 요청에 대한 동사라고도하는 광범위한 메서드를 제공합니다. 여기에는 주로 POST, PUT, PATCH, GET, DELETE, CUSTOM .
게시하다
이 메서드는 레코드 생성을 담당합니다. 성공적으로 실행되면 HTTP 응답 코드는 201입니다.
다음은 POST를 보여주는 샘플 JSON입니다.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
이 JSON을 요청 본문으로 전달하면 201 응답 코드가있는 문서가 생성됩니다.
가져 오기
이것은 문서 또는 레코드를 검색하는 데 사용되는 또 다른 방법 또는 동사입니다. GET이 성공적으로 실행되면 응답 코드는 200이됩니다. 여기에는 요청 본문이나 페이로드가 포함되지 않습니다.
Parasoft의 리소스 탭에서 'Test'로 문서 키를 사용하여 GET 메서드를 사용하여 동일한 URL을 누르기 만하면됩니다. 문서 키를 전달하지 않아도 전체 문서를 가져옵니다.
문서 키를 'Test.Test2'로 전달하면 다음 레코드를 가져 오게됩니다.
{ “Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
놓다
이 메서드는 문서를 업데이트하는 데 사용되며 성공적인 실행 후 200 응답 코드를 갖습니다.
POST와 PUT는 크게 다르지 않지만 코딩 방법은 개발자에 따라 다릅니다. 대부분 개발자는 일부 필드 값을 업데이트하려는 경우 PUT 메서드를 사용합니다.
예를 들면 : POST에 의해 삽입 된 위의 JSON 문서에서 일부 값을 변경하려면 PUT 메서드를 사용하여 업데이트 된 값으로 전체 요청 본문을 전달합니다.
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
트래픽 뷰어에서 응답을 보면 필드 값이 다음과 같이 업데이트됩니다.
'플랫폼': '업데이트 된 Windows'
패치 (CUSTOM)
이는 레코드 업데이트에만 사용되는 또 다른 방법입니다. 대부분의 개발자는 리소스를 최대한 활용하므로 PUT 방법보다이 방법을 선호합니다. 문서의 일부 필드 값을 업데이트하려는 경우 레코드의 업데이트 된 값이있는 해당 필드 만 전달하면됩니다.
POST 레코드를 업데이트하려면 PATCH를 사용하는 동안 다음 요청 본문 만 사용합니다.
{“Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
아시다시피 여기에서는 PUT 메서드와 달리 'Test'필드 값을 전달하지 않았습니다. 성공적으로 실행하면 200 또는 201 응답 코드가 제공됩니다.
지우다
이름 자체에서 알 수 있듯이 기본 설정이라고도하는 레코드를 삭제합니다. 여기에는 GET과 같은 요청 본문이 포함되어 있지 않으며 응답 코드가 203 (컨텐츠 없음) 인 경우가 많습니다. 전체 문서를 삭제해야하는 경우 위의 JSON에서 문서 키를 그대로 전달합니다.
Test
전체 문서가 삭제됩니다. 문서 키를 전혀 전달하지 않으면 전체 문서도 삭제됩니다.
면접관의 함정
Q # 1) 대부분의 면접관들은 204가 아닌 200의 성공적인 삭제 작업 응답 코드를 받았는지 물어 보면 혼동을 일으키려고합니다. 이런 상황에서 어떻게해야합니까? 버그로보고해야합니까?
대답: 위의 질문에 대한 답은 간단합니다. 버그를 제기 할 필요가 없습니다. 대신 개발자에게 문의하거나 다른 삭제 작업 응답을 관찰 할 수 있습니다. 응답 코드 200은 항상 성공적인 작업을 나타내며 204는 DELETE에 고유합니다. 개발자가 모든 성공적인 작업에 200을 사용했을 가능성이 있습니다.
Q # 2) 백만 줄의 코드로 이루어진 JSON 요청에서 데이터베이스를 사용하지 않고 특정 필드 값이 올바른지 여부를 어떻게 확인합니까?
대답: 대답은 GET 작업에서 문서 키를 보내는 것입니다. 샘플 URL은 다음과 같습니다.
https://resource-name.com/context-key/document-key
위 URL에서 컨텍스트 키는 1 백만 개의 레코드로 구성된 특정 JSON을 고유하게 가져오고 문서 키는 해당 레코드의 특정 필드 값을 가져옵니다.
Q # 3) JSON 위에 문서 이름을 지정하지 않으면 전체 문서를 가져 오기 위해 문서 키로 무엇을 전달해야합니까?
대답: 무엇이든 전달할 수 있습니다. 네, 맞습니다. 문서 이름을 지정하지 않았고 문서에 필드와 값만있는 경우 모든 문자열 값을 전달할 수 있습니다. 해당 문자열은 자동으로 문서 키로 처리됩니다.
요약
이제 SOAP 및 REST 웹 서비스, 구조, 주요 차이점, 기능 및 사용법에 대한 공정한 아이디어를 가지고 있어야합니다.
또한이 자습서에서는 평가 목적으로 JSON 프로그래밍 및 JSON 경로와 함께 REST 서비스에서 사용되는 가장 일반적이고 중요한 메서드 (동사라고도 함)를 다루었습니다.
이전 튜토리얼 | NEXT 튜토리얼
추천 도서
- JSON 튜토리얼 : 초보자를위한 소개 및 완전한 가이드
- XML에서 데이터베이스 테스트에 대한 간단한 접근 방식
- 2021 년 최고의 10 가지 API 테스트 도구 (SOAP 및 REST API 테스트 도구)
- 15 개 이상의 SoapUI 자습서 : 최고의 웹 서비스 API 테스트 도구
- 7 SoapUI 및 SoapUI Pro의 중요한 기능-튜토리얼 2
- SoapUI에서 모의 서비스 및 동적 응답을 만드는 방법
- SoapUI Pro에서 REST 프로젝트를 만드는 방법 : 자습서 # 13
- 단계별 SoapUI 다운로드 및 설치 프로세스 – SoapUI 자습서 # 3
- 상위 45 개 웹 서비스 인터뷰 질문 및 답변 (RESTful, SOAP, 보안 질문)