[web-services] OData와 REST 웹 서비스의 차이점

일부 웹 서비스를 살펴보면서 Microsoft가 OData 라고 부르는이 “새로운”기술을 발견했습니다 . OData가 무엇인지에 대한 FAQ의 설명을 읽으면 OData를 REST-ful 웹 서비스와 구별하는 데 어려움을 겪고 있습니다. 누군가가 차이점을 이해하도록 도와 줄 수 있습니까?



답변

업데이트 경고,이 답변은 OData V4를 사용할 수있게 되었기 때문에 최신 정보가 아닙니다.


나는이 주제에 대해 얼마 전에 여기 에 글을 썼습니다 .

Franci가 말했듯이 OData는 Atom Pub을 기반으로합니다. 그러나 일부 기능을 맨 위에 배치했으며 불행히도 프로세스의 일부 REST 제약 조건을 무시했습니다.

OData 서비스의 쿼리 기능을 사용하려면 응답에서 사용할 수 없거나 링크 된 정보를 기반으로 URI를 구성해야합니다. 이것이 REST 사람들이 대역 외 정보라고 부르는 것이며 클라이언트와 서버 사이에 숨겨진 결합을 도입합니다.

도입 된 다른 커플 링은 EDMX 메타 데이터를 사용하여 항목 컨텐츠에 포함 된 특성을 정의하는 것입니다. 이 메타 데이터는 $ metadata라는 고정 된 엔드 포인트에서 검색 할 수 있습니다. 다시 말하지만, 클라이언트는이를 미리 알아야하며,이를 발견 할 수 없습니다.

불행히도 Microsoft는 이러한 주요 데이터를 설명하기 위해 미디어 유형을 만드는 데 적합하지 않았으므로 모든 OData 클라이언트는 통신하는 서비스와 수신하는 데이터에 대해 많은 가정을해야합니다.


답변

OData 프로토콜은 AtomPub 프로토콜 위에 구축됩니다. AtomPub 프로토콜은 REST API 디자인의 가장 좋은 예 중 하나입니다. 따라서 OData는 다른 REST API 일 뿐이며 각 OData 구현은 REST-ful 웹 서비스입니다.

차이점은 OData가 특정 프로토콜이라는 것입니다. REST는 아키텍처 스타일과 디자인 패턴입니다.


답변

REST는 웹 서비스에 액세스하는 방법을 설명하는 데 사용되는 일반적인 디자인 기술입니다. REST를 사용하면 데이터를 얻기 위해 http 요청을 할 수 있습니다. 브라우저에서 시도하면 웹 페이지를 반환하는 대신 웹 사이트를 방문하는 것과 같습니다. XML을 다시 가져옵니다. 일부 서비스는 또한 Javascript와 함께 사용하기 쉬운 JSON 형식으로 데이터를 반환합니다.

OData는 REST를 통해 데이터를 노출하는 특정 기술입니다.

실제로 요약하면 다음과 같이 생각하십시오.

  • REST-디자인 패턴
  • OData-기술 활성화

답변

2012 년 OData는 표준화를 마쳤으므로 여기에 업데이트를 추가하겠습니다.

먼저 정의 :

REST -HTTP를 통해 메시지를 보내는 방법의 아키텍처입니다.

OData V4 -REST의 특정 구현이며 실제로 메시지의 내용을 다른 형식으로 정의합니다 (현재 AtomPub 및 JSON이라고 생각합니다). ODataV4는 나머지 원칙을 따릅니다.

예를 들어, asp.net 사용자는 주로 WebApi 컨트롤러를 사용하여 객체를 JSON으로 직렬화 / 직렬화하고 자바 스크립트로 무언가를 수행하게됩니다. Odata는 즉시 사용 가능한 옵션으로 URL에서 직접 쿼리 할 수 ​​있습니다.


답변

OData 문서에서 :

OData 프로토콜은 RESTful 웹 서비스를 통해 데이터와 상호 작용하기위한 응용 프로그램 수준 프로토콜입니다.

OData 프로토콜은 데이터와 데이터 모델을 모두 설명하는 균일 한 방법을 제공한다는 점에서 다른 REST 기반 웹 서비스 접근 방식과 다릅니다.


답변

OData (Open Data Protocol)는 RESTful API 빌드 및 소비에 대한 모범 사례를 정의하는 OASIS 표준입니다. OData를 사용하면 요청 및 응답 헤더, 상태 코드, HTTP 메소드, URL 규칙, 미디어 유형, 페이로드 형식 및 쿼리 옵션 등을 정의하는 방법에 대해 걱정할 필요없이 RESTful API를 구축하면서 비즈니스 로직에 집중할 수 있습니다. 변경 사항 추적, 재사용 가능한 프로 시저에 대한 기능 / 조치 정의 및 비동기 / 배치 요청 전송 등. 또한 OData는 RESTful API의 사용자 정의 요구를 충족시키기위한 확장 기능을 제공합니다.

OData RESTful API는 사용하기 쉽습니다. API의 데이터 모델에 대한 기계 판독 가능 설명 인 OData 메타 데이터를 사용하면 강력한 일반 클라이언트 프록시 및 도구를 작성할 수 있습니다. 그들 중 일부는 프로토콜에 대해 전혀 몰라도 OData와 상호 작용하는 데 도움이 될 수 있습니다. 다음 6 단계는 서로 다른 프로그래밍 플랫폼에서 6 가지 흥미로운 OData 소비 시나리오를 보여줍니다. 그러나 개발자가 아니고 단순히 OData를 가지고 놀고 싶다면 XOData가 최선의 시작입니다.

자세한 내용은 http://www.odata.org/참조하십시오.


답변

ODATA 는 URL에서 균일하게 데이터쿼리 할 수 있는 특별한 종류의 REST 입니다.