2009-10-22 5 views
3

웹 서비스 자체의 개발에서 SOAP, REST 중 어느 것이 더 나은지 묻는 질문이 여러 개 있습니다. 그러나, 클라이언트의 관점에서 장단점에 대한 논의는 많지 않습니다. 응용 프로그램을 작성하고 하나가 SOAP이고 다른 하나가 REST 인 경우를 제외하고 모든면에서 유사한 두 개의 웹 서비스 API 중 하나를 선택할 수 있습니다. REST에는 XML 또는 JSON 중 하나를 허용하는 추가 이점이 있습니다. 두 가지 사이에 다른 주요 차이점이 있습니까?SOAP 또는 REST를 클라이언트로 사용

답변

6

와우, 10 시간 그리고 지금까지는이 질문에 대한 답변이 없습니다. 보통 이러한 유형의 질문은 순식간에 점프됩니다.

어쨌든 여기에 이상한 답변이 있습니다. 선택은 몇 가지 사항에 따라 달라집니다.

  1. 두 API에 대한 문서화는 얼마나 좋은가?
  2. API가 변경 될 가능성이 큽니다.
  3. 얼마나 많은 시간을 클라이언트에서 생산해야합니까?
  4. 클라이언트의 사용 기간이 어느 정도입니까?
  5. REST API 설명서는 반환하는 XML/JSON이있는 URL 목록으로 구성되어 있습니까?

더 나은 문서가있는 API는 사용하기가 더 좋은 API입니다. 이것은 보장 된 것은 아니지만 좋은 지표입니다. 구현이 쓰레기 인 경우 SOAP이 REST보다 우수한지 또는 그 반대인지는 중요하지 않습니다. 어느쪽으로 든 고통을 겪을 것입니다.

신생 회사가 만든이 API는 내년에 크게 발전 할 것으로 예상되며, REST API는 관리하기가 더 쉽습니다. SOAP api는 생성하기 쉬운 클라이언트 프록시 코드로 인해 자주 부서지기 쉽고 클라이언트 재 컴파일이 자주 필요합니다.

정말 빠른 작업이 필요한 경우 클라이언트 생성 프록시 코드가 싫어서 1001 가지 이유가 있음에도 불구하고. 여러분이 좋아하는 IDE를 WSDL의 덩어리로 가리키면 아주 빨리 당신에게 객체 모델을 갖게 될 것입니다. 확실히 뭔가를 작동시키는 가장 빠른 방법입니다.

클라이언트가 여러 해 동안 돌아갈 것이라면 좋은 REST 클라이언트를 만드는 데 시간을 투자 할 가치가 있다고 생각합니다. REST 기반 접근법은 시간이 지남에 따라 발생할 수있는 불가피한 변화에 대해 훨씬 더 탄력적입니다. SOAP 기반의 REST 클라이언트보다 REST 클라이언트 버전의 경우 훨씬 더 많은 옵션이 있습니다.

마지막 항목은 REST API가 실제 REST 인터페이스인지 아닌지에 대한 약간의 리트머스 테스트입니다. 문서가 http 엔드 포인트의 카탈로그 인 경우 설계자는 REST가 무엇인지 모르기 때문에 거의 고려하지 않을 수 있습니다.

6

당신은 잘못된 가정을하고 있습니다.

당신 말 : 당신이 응용 프로그램 를 작성한다면

하나를 제외한 모든 방법과 유사하다 두 개의 웹 서비스 API를 사이에 선택의 여지가 SOAP이다가 다른 는 REST, 인 당신은 을 선택하겠습니까?

실제로 SOAP API는 REST 시스템과 완전히 다르므로 실제로이 레벨에서 비교할 수는 없습니다.

REST는 프로토콜이 아니라 아키텍처입니다. SOAP은 프로토콜이지만 아키텍처는 아닙니다. 가능한 한 SOAP 페이로드가 REST 시스템에 많이 제공하지 않기 때문에 SOAP 프로토콜 위에 REST 아키텍처를 만들지는 않을 것입니다.

SOAP 시스템은 RPC 기반이되는 경향이 있으며 REST 시스템은 리소스 기반입니다. 이 두 가지의 차이점은 운영상 및 디자인면에서 차이가 있습니다.

SOAP과 HTTP를 통한 XML/JSON (많은 사람들이 REST와 실수로 혼동하는 것)을 사용하는 한 SOAP 시스템의 주요 이점은 시스템과의 인터페이스 및 게시를 훨씬 쉽게 할 수있는 툴링입니다.

오늘날 많은 IDE와 서버는 SOAP 웹 서비스를 쉽게 게시하고 사용할 수 있습니다.

자바에서는 SOAP 인터페이스를 게시하는 것이 파일에 "@WebService"를 붙이고 배포하는 것일 수 있습니다. IDE를 WSDL (웹 서비스가 게시 될 때 편리하게 생성)에서 가리키고 단추를 클릭하고 데이터를 마샬링하고 서비스와 통신하는 데 필요한 프록시를 만드는 데 웹 서비스를 사용하는 것만 큼 중요합니다.

HTTP를 통한 XML/JSON은 SOAP 자동화를 쉽게 만들어주는 많은 보일러 플레이트를 생략 할 수 있다는 이점이 있습니다. 물론 Javascript는 JSON을 사용하는 데 매우 능숙합니다. 따라서 클라이언트 공간에 웹 브라우저가 포함되어 있다면 요인이 될 수 있습니다.

브라우저에서 서버로, HTTP를 통한 XML/JSON이 제대로 작동하면 실제 REST 아키텍처가 잘 작동 할 수 있습니다.

서버간에 RPC를 사용하는 경우 SOAP는 오늘날 사용할 수있는 도구 때문에 훨씬 쉽게 구현할 수 있습니다.

관련 문제