답변:
업데이트 경고,이 답변은 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를 통해 데이터를 노출하는 특정 기술입니다.
실제로 요약하면 다음과 같이 생각하십시오.
2012 년 OData는 표준화를 마쳤으므로 여기에 업데이트를 추가하겠습니다.
먼저 정의 :
REST -HTTP를 통해 메시지를 보내는 방법의 아키텍처입니다.
OData V4 -REST의 특정 구현이며 실제로 메시지의 내용을 다른 형식으로 정의합니다 (현재 AtomPub 및 JSON이라고 생각합니다). ODataV4는 나머지 원칙을 따릅니다.
예를 들어, asp.net 사용자는 주로 WebApi 컨트롤러를 사용하여 객체를 JSON으로 직렬화 / 직렬화하고 자바 스크립트로 무언가를 수행하게됩니다. Odata는 즉시 사용 가능한 옵션으로 URL에서 직접 쿼리 할 수 있습니다.
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/ 를 참조하십시오.