2012-03-11 1 views
2

우리 서비스에서는 SOAP 1.1 및 1.2 클라이언트와 XML 또는 JSON 중 하나를 사용하는 HTTP 클라이언트에 동일한 인터페이스를 게시 할 수 있도록 여러 끝점을 구성합니다. 이제 WCF REST 팀이 ASP.NET 팀에 합병되어 웹 API를 만들었습니다. 앞으로 이것이 우리에게 어떤 의미가 될까요? WCF 인터페이스를 XML/JSON 서비스로 공개 할 수 있습니까? REST 엔드 포인트를 웹 API 프레임 워크로 이동해야합니까? 이것이 MS REST 스택의 마지막 전환일까요?우리는 WCF 서비스에 SOAP 및 REST 끝점을 모두 사용합니다. ASP.NET 웹 API는 무엇을 의미할까요?

+0

내 질문에 두 가지 큰 대답이 있습니다. 두 가지 모두 '실제'REST 인터페이스를 구현하기위한 새로운 프레임 워크의 우월성을 강조합니다. 둘 모두 새로운 플랫폼에서 SOAP 인터페이스를 지원할 수 없다는 것을 의미합니다.나는 그것이 나의 특정한 상황에 더 유용하다고 느꼈기 때문에 Stilgars 대답을 받아 들였다. –

답변

3

좋은 질문입니다. 저는 Microsoft에서 일하지 않고 내부 정보가 없지만 WCF는 XML과 JSON을 영원히 드러 낼 수 있습니다. 실제로 JSON 또는 XML 끝점을 노출하는 경우 REST를 수행하지 않습니다. 진짜 질문은 HTTP 동사 (DELETE, PUT, POST, GET)를 API의 일부로 사용하는지 또는 SOAP 메소드와 동일한 메소드를 간단히 노출하는 것입니다. HTTP 동사를 사용하는 경우 REST 부분을 WebAPI로 마이그레이션하는 것이 장기적인 전략 일 수 있습니다. 당신이 그렇지 않다면 당신은 행복하게 WCF를 사용할 수 있습니다. (마케팅 목적으로 REST를 사용하고있는 cusomers에게 말하십시오. 마케팅 사람들에게 그것은 어쨌든 전문 용어입니다).

HTTP 동사를 사용하는 경우 WCF와 WebAPI를 모두 갖는 것이 어렵지 않습니다. 서비스 자체에서 모든 로직을 제거하고이를 비즈니스 계층 방법으로 드러내기만하면됩니다. 그런 다음 서비스의 두 애들은 이러한 방법을 사용하여 적절한 방식으로 호출하고 결과를 형성 할 수 있습니다.

+0

:) 당신은 완전히 옳았습니다. 우리가하는 일은 적절한 REST가 아니지만 "XML과 JSON으로 우리의 서비스를 드러내는 것"이외의 정확한 용어를 모른다. 우리는 DELETE와 PUT을 사용하지 않기 때문에 앞으로 나아갈 이유가별로 없을 것입니다. –

+0

그런 다음 실제 휴식을 취하지 않으면 마이그레이션 할 이유가 없을뿐만 아니라 WebAPI로 마이그레이션하는 데 어려움이 있습니다. 실제 REST를 수행하려는 경우 정의에 따라 엔드 포인트가 달라집니다 (즉, REST에 대해 SOAP에 대해 하나의 메소드를 두 가지 구현해야 함) – Stilgar

3

이 답변을 얻으려면 ASP.NET 웹 API에 대한 약간의 기록이 있어야합니다.

처음에는 ASP.NET 웹 API WCF 웹 API, Codeplex에서 WCF를 확장하여 REST 스타일의 서비스를보다 쉽게 ​​지원할 수있는 프로젝트였습니다. WCF는 핵심 메시징 유형으로 SOAP를 기반으로 구축되었으므로 전송 계층 프로토콜 이외의 다른 용도로 HTTP를 사용하려면 속성 집합이 다른 다른 접근 방식이 필요했으며 일반적으로 나머지 프레임 워크와 잘 맞지 않았습니다.

WCF 웹 API는 HTTP를 응용 프로그램 수준 전송 메커니즘으로 지원하는 데 필요한 모든 방법으로 WCF 프레임 워크를 확장했습니다. 리소스 URI, Accept 헤더에 따른 동적 서식 및 이전에 WCF에서 누락 된 다른 것들을 기반으로 요청 라우팅을 도입했습니다.

그러나 개발 과정에서 이러한 기술은 .NET 내에서 이미 MVC 스택에 존재한다는 것이 분명해졌습니다. 따라서 두 가지 경쟁 기술 세트를 사용하는 대신 작업을 ASP.NET MVC 팀으로 옮기고 ASP.NET 웹 API이 탄생했습니다.


REST 스타일 서비스를 수행하는 경우 ASP.NET 웹 API는 WCF 프레임 워크보다 사용자의 요구에 훨씬 더 적합합니다. WCF 팀은 REST 스타일 아키텍처에 대한 지원을 진행하지 않을 것입니다. WCF 프레임 워크의 이러한 기능은 효과적으로 웹 API 인 에 포함되어 훨씬 더 자연스럽게 맞는을 찾습니다.

새 웹 API를 사용하기 위해 서비스를 다시 작성해야합니까? 글쎄, WCF의 REST 기능이 갑자기 작동을 멈추지 않을 것이다. 동적 콘텐츠 형식 선택과 같은 몇 가지 기능을 제공하거나 API를 지속적으로 개발하려는 경우 (웹 API가 WCF보다 훨씬 사용하기 쉽기 때문에) 이동을 고려해야합니다.

관련 문제