웹 서비스 자체의 개발에서 SOAP, REST 중 어느 것이 더 나은지 묻는 질문이 여러 개 있습니다. 그러나, 클라이언트의 관점에서 장단점에 대한 논의는 많지 않습니다. 응용 프로그램을 작성하고 하나가 SOAP이고 다른 하나가 REST 인 경우를 제외하고 모든면에서 유사한 두 개의 웹 서비스 API 중 하나를 선택할 수 있습니다. REST에는 XML 또는 JSON 중 하나를 허용하는 추가 이점이 있습니다. 두 가지 사이에 다른 주요 차이점이 있습니까?SOAP 또는 REST를 클라이언트로 사용
답변
와우, 10 시간 그리고 지금까지는이 질문에 대한 답변이 없습니다. 보통 이러한 유형의 질문은 순식간에 점프됩니다.
어쨌든 여기에 이상한 답변이 있습니다. 선택은 몇 가지 사항에 따라 달라집니다.
- 두 API에 대한 문서화는 얼마나 좋은가?
- API가 변경 될 가능성이 큽니다.
- 얼마나 많은 시간을 클라이언트에서 생산해야합니까?
- 클라이언트의 사용 기간이 어느 정도입니까?
- 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가 무엇인지 모르기 때문에 거의 고려하지 않을 수 있습니다.
당신은 잘못된 가정을하고 있습니다.
당신 말 : 당신이 응용 프로그램 를 작성한다면
하나를 제외한 모든 방법과 유사하다 두 개의 웹 서비스 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는 오늘날 사용할 수있는 도구 때문에 훨씬 쉽게 구현할 수 있습니다.
- 1. SOAP 또는 REST를 사용하여 외부 웹 서비스 검색을 자동화해야합니까?
- 2. SOAP 대 XML-RPC 또는 REST의 성능
- 3. .Net 및 WCF - SOAP 대신 REST를 만드는 방법은 무엇입니까?
- 4. .NET 또는 Java를 클라이언트로 설명하기
- 5. 레일 - 다른 응용 프로그램의 SOAP 인터페이스 사용
- 6. SOAP보다 REST를 선호하는 이유는 무엇입니까?
- 7. 더 간단할까요? REST 또는 11g의 SOAP?
- 8. SOAP 웹 서비스 사용
- 9. PHP에서 SOAP wsHttpBinding 사용
- 10. 서블릿도 SOAP WS 클라이언트로 작동 할 수 있습니까?
- 11. Wavecom GSM 모뎀을 TCP 클라이언트로 사용
- 12. 웹 데이터베이스 또는 SOAP?
- 13. RoR에서 SOAP 웹 서비스 사용
- 14. ASP.NET에서 WCF REST를 구현하는 방법
- 15. 축 2가 REST를 지원합니까?
- 16. WCF/REST를 사용해야하는 경우
- 17. REST를 통해 이미지로 노드 만들기
- 18. PHP SOAP 클라이언트 및 SOAP 서버 오류
- 19. 구별하는 방법은 SOAP 또는 REST 웹 서비스입니까?
- 20. 필터에서 SOAPFault를 클라이언트로 반환하는 방법은 무엇입니까?
- 21. C++ GSOAP 클라이언트로 Amazon S3 서비스에 액세스
- 22. RESTful 레일즈 컨트롤러가 net/http를 클라이언트로 사용 - 많은 요청이 느려짐
- 23. 브라우저가 클라이언트로 어디에서 실패합니까?
- 24. REST를 사용한 클라이언트 - 서버 통신
- 25. 인증에 REST를 사용하는 것이 좋습니다.
- 26. erlang에서 REST를 통한 혜성 앱?
- 27. WCF Rest를 설정하는 방법 GET?
- 28. SOAP, 태그의 접두어 사용 <xx:tag>
- 29. SOAP 서버에 인증 기능 추가 (Zend 사용)?
- 30. ASP.NET MVC에서 SOAP 웹 서비스를 모델로 사용