SOAP 기반 서비스 대신 REST를 사용하는 이유는 무엇입니까?[닫은]

StackOverflow https://stackoverflow.com/questions/90451

  •  01-07-2019
  •  | 
  •  

문제

오늘 REST에 대한 흥미로운 데모에 참석했지만 왜 REST가 SOAP 기반 서비스 스택보다 사용 및 구현이 더 좋고 간단한지에 대한 단 하나의 이유를 생각할 수 없었습니다.

"실제 세계"의 누군가가 SOAP 기반 서비스 대신 REST를 사용하는 이유는 무엇입니까?

도움이 되었습니까?

해결책

오버헤드 감소(모든 호출을 래핑하는 SOAP 봉투 없음)

중복 감소(HTTP는 이미 DELETE, PUT, GET 등과 같은 작업을 나타냄)그렇지 않으면 SOAP 봉투에 표시되어야 함).

더욱 표준화됨 - HTTP 작업이 잘 이해되고 일관되게 작동합니다.일부 SOAP 구현은 까다로울 수 있습니다.

사람이 더 읽기 쉽고 테스트하기 쉽습니다(브라우저만으로는 SOAP를 테스트하기가 더 어렵습니다).

XML을 사용할 필요는 없습니다(SOAP에도 사용할 필요는 없지만 이미 봉투 구문 분석을 수행하고 있으므로 의미가 거의 없습니다).

라이브러리는 SOAP(일종의)를 쉽게 만들었습니다.그러나 내가 언급한 것처럼 아래에 많은 중복성을 추상화하고 있습니다.그렇습니다. 이론적으로 SOAP는 유사한 작업을 수행하는 레이어 위에 올라타는 것을 피하기 위해 다른 전송을 사용할 수 있지만 실제로 수행하게 될 거의 모든 SOAP 작업은 HTTP를 통해 수행됩니다.

다른 팁

평안한 서비스는 소비하기가 훨씬 간단합니다. 비누 기반(정규) 서비스.그 이유는 REST가 요청 유형(GET = 검색, POST = 쓰기, DELETE = 제거 등...)에서 의도를 추론할 수 있는 일반 HTTP 요청을 기반으로 하며 완전히 상태 비저장이기 때문입니다.반면에 요청 컨텍스트를 포함하는 메시지 봉투 개념을 없애기 때문에 유연성이 떨어진다고 주장할 수도 있습니다.

내 경험에 따르면 SOAP는 기업 내 서비스에 선호되고 REST는 공용 API로 노출되는 서비스에 선호됩니다.

.NET 프레임워크의 WCF와 같은 도구를 사용하면 REST 또는 SOAP로 서비스를 구현하는 것이 매우 쉽습니다.

관련 자료:

"웹 서비스"라고 하면 SOAP 및 WS-* 표준 세트를 의미한다고 가정하겠습니다.(그렇지 않으면 REST 서비스가 ~이다 "웹 서비스".)

정식 주장은 REST 서비스가 웹 디자인, 즉 HTTP 및 관련 인프라 디자인과 더 가깝다는 것입니다.따라서 REST 서비스를 사용하면 기존 웹 도구 및 기술과 더 잘 호환됩니다.

물론 세부 사항을 자세히 살펴보면 두 가지 접근 방식 모두 서로 다른 시나리오에서 장점이 있다는 것을 알 수 있습니다.당신이 관심을 갖고 있는 것이 구체적인 내용인가요?

오버헤드는 좋은 아키텍처만큼 중요하지 않습니다.

REST는 프로토콜이 아니며 확장성이 뛰어난 디자인을 장려하는 아키텍처입니다.RPC에 너무 많은 자유가 있으면 쉽게 잘못된 디자인으로 이어질 수 있기 때문에 종종 선택됩니다.

또 다른 이유는 기존 기술(주로 프록시)을 활용할 수 있기 때문에 HTTP를 통한 RESTful 프로토콜의 예측 가능한 비용입니다.RPC 초기 비용은 매우 낮지만 부하가 증가함에 따라 크게 증가하는 경향이 있습니다.

REST는 구현에 구애받지 않고 훨씬 더 투명하므로 공개 API, 특히 API를 마케팅 도구로 사용하고 사람들이 데이터를 소비하기를 원하는 Flickr, Amazon 또는 Digg와 같은 대규모 웹 사이트에 적합합니다.그들 ~하지 않다 선택한 스크립팅 언어의 버그가 있는 SOAP 라이브러리를 디버깅하려는 수천 명의 초보 개발자를 관리하고 싶습니다.

SOAP 및 WSDL과 비교하면 드롭인 라이브러리와 양쪽에 잘 아는 사람들이 있는 내부 애플리케이션에 더 좋습니다.(그리고 인터넷 규모의 로드 밸런싱, HTTP 캐싱 등과 같은 사항에 신경 쓸 필요가 없을 수도 있습니다.) 그런 다음 자체 문서화되고 유형을 보존하는 API를 얻게 됩니다.일 없이.

로이 필딩(Roy Fielding)의 가장 훌륭한 책을 읽었습니다. 논문 주제에.그는 훌륭한 사례를 만들었고 확실히 그랬습니다. 방법 그가 쓴 시대 (2000)보다 앞서 있습니다.

스티브 비노스키의 블로그 그리고 그의 최신 기사 확실히 읽어 볼 가치가 있습니다.그는 Michi Henning과 함께 이 주제에 관한 최고의 책을 쓴 전 CORBA 전문가입니다. "C++를 사용한 고급 CORBA® 프로그래밍".그러나 그는 이후 클라이언트/서버 방식의 오류를 확인했으며 이제는 REST를 사용합니다.

REST를 사용하면 (일반적으로 GET 동사를 사용하는) 비변이 작업을 수행할 수 있습니다. 캐시된.즉, 클라이언트에 의해 캐시되거나 프록시에 의해 캐시됩니다.이것은 큰 승리가 될 수 있습니다!

REST는 기본적으로 웹 서비스를 구현하는 방법일 뿐입니다.이는 HTTP를 올바르게 사용하여 공격하려는 웹 서비스를 쿼리하는 방법일 뿐입니다.

http://www.xfront.com/REST-Web-Services.html http://en.wikipedia.org/wiki/Representational_State_Transfer

매우 간단하고 슬림합니다.http 동사를 통해 브라우저에서 이를 수행할 수 있습니다.얻다.일반 http POST 요청을 수동으로 쉽게 수행할 수 있는 브라우저를 찾지 못했습니다.

다음은 하나의 데이터 포인트입니다.Amazon은 REST와 SOAP 형식 모두로 API를 제공하며 사용량의 85%가 REST입니다.

REST는 구현하기 쉽고 이해하기 쉬우며 성능이 더 높습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top