oData는 REST 서비스와 어떻게 다릅니 까? API 작성을 검토 중이며 REST 서비스

웹 서비스 API 작성을 검토 중이며 REST 서비스 작성을 생각하고 있습니다. 이 맥락에서 OData는 무엇을 의미합니까? OData와 REST의 차이점을 설명해 주시겠습니까?



답변

REST는 HTTP를 사용하여 클라이언트에서 서버로 메시지를주고받는 방법을위한 아키텍처입니다. OData는 REST 아키텍처를 사용하여 HTTP를 통해 특정 유형 의 메시지 를 보내는 Microsoft의 표준 입니다. OData는 메시지의 내용 (내용)에 대해 설명합니다. REST는 이러한 메시지를주고받는 방식의 아키텍처입니다.


답변

@jkohlhepp 및 @Tom Squires에 동의하지만 몇 가지 세부 정보가 추가됩니다.

OData는 개방형 표준입니다 (Microsoft에 의해 선정되었지만 Microsoft를 넘어 채택되었으며 iOS 및 Android를 포함한 많은 플랫폼에서 사용 가능).

OData 페이로드는 Atom (읽기) 및 AtomPub (업데이트) 형식을 기반으로합니다. 또한 Atom은 널리 사용되는 RSS 피드 형식의 기본입니다. Atom은 확장 가능하며 OData는이를 활용하여 잘 알려진 확장을 만듭니다. 예를 들어, OData 서비스에는 필터링 (날짜 별 필터 또는 고객 이름) 및 정렬 등과 ​​같은 많은 기능을 가진 URI 규칙 이 있습니다. 이러한 특수 규칙을 표준 (OData 정의) 방식으로 사용하면 OData가 유사하게 작동하기 때문에 OData를 강력하게 만들 수 있습니다.

Netflix와 같이 잘 알려진 OData 소스가 있습니다 (모든 영화 데이터가 있습니다. 재미있게 놀 수 있습니다!).

odata.org 에서 OData에 대한 모든 내용을 읽으십시오 .

행운을 빕니다! -계산서


답변

REST는 웹 서비스를 구축하는 건축 스타일입니다. HTTP 및 해당 동사 (POST / PUT / GET 등)를 사용하여 서비스에서 제공하는 리소스에 대한 CRUD를 수행 할 수 있다고 말하는 모델 일뿐입니다. 그러나 REST에는 URL의 모양, 요청 / 응답 형식 요청 방법, 정보 쿼리 방법 또는 기본 수준에서 서비스가 지원하는 작업 및 리소스에 대한 세부 정보가 없습니다!

XML 기반 웹 서비스의 세계에는 다양한 서비스와 클라이언트에서 상호 운용성을 가능하게하는 표준을 정의하는 SOAP, WSDL, WS- *가 있습니다.

OData는 REST 기반 웹 서비스를 위해이를 수행하려고합니다.

이 서비스는 CSDL 형식으로 $ metadata를 정의하여 서비스가 지원하는 (엔티티 / 복잡한) 유형과 해당 속성, 데이터 유형, 유형과의 관계 및 서비스가 기존 CRUD 이외의 일부 특수 작업을 지원하는지 여부를 설명합니다.

OData는 리소스 즉, / Entity, / Entity ( ‘id’) 또는 / Entity (key1 = value1, key2 = value2) … 등의 URL 형식을 표준화합니다.

OData는 데이터와 메타 데이터의 구조에 따라 JSON 및 AtomXml의 요청 / 응답 형식을 표준화합니다.

OData는 또한 $ filter, $ orderby, $ skip, $ top, $ expand의 도움으로 소비자가 원하는 정확한 정보를 귀하의 서비스에 쿼리 할 수 ​​있도록 매우 풍부한 쿼리 언어를 지정합니다.

OData를 사용하면 전체 데이터 모델-엔터티 및 관계를 설명하고 이러한 엔터티 및 / 또는 관계에 대한 CREATE, UPDATE, DELETE, GET, MERGE 및 CUSTOM OPERATIONS와 같은 모든 종류의 작업을 지원할 수 있습니다.

OData v4는 이제 이전 버전보다 많은 기능이 개선 된 OASIS 표준입니다. OData의 생태계는 천천히 성장하고 있습니다.


답변

OData는 REST를 사용하여 암시 된 표준입니다.