다음을 통해 공유


WCF Data Services 프로토콜 구현 정보

OData 프로토콜 구현 정보

Open Data Protocol(OData)에서는 프로토콜을 구현하는 데이터 서비스가 최소한의 기능 집합을 제공해야 합니다. 이러한 기능은 프로토콜 문서에 "해야 한다"로 설명됩니다. 다른 선택적 기능은 "할 수 있다"로 설명됩니다. 이 항목은 현재 WCF Data Services로 구현되지 않는 이러한 선택적 기능에 대해 설명합니다. 자세한 내용은 OData Protocol Documentation을 참조하십시오.

$format 쿼리 옵션 지원

OData 프로토콜은 JSON(JavaScript Notation)과 Atom 피드를 둘 다 지원하고, OData는 클라이언트에서 응답 피드의 형식을 요청할 수 있도록 $format 시스템 쿼리 옵션을 제공합니다. 이 시스템 쿼리 옵션은 데이터 서비스에서 지 원하는 경우 요청의 Accept 헤더 값을 재정의 해야 합니다. WCF Data Services는 반환되는 JSON 및 Atom 피드를 둘 다를 지원합니다. 그러나, 기본 구현은 $format 쿼리 옵션을 지원하지 않고 Accept 헤더 값만 사용하여 응답 형식을 결정합니다. 클라이언트가 Accept 헤더를 설정할 수 없는 경우와 같이 데이터 서비스가 $format 쿼리 옵션을 지원해야 하는 경우가 있습니다. 이러한 시나리오를 지원하려면 URI에서 이 옵션을 처리하도록 데이터 서비스를 확장해야 합니다. MSDN Code Gallery 웹 사이트에서 JSONP and URL-controlled format support for ADO.NET Data Services 샘플 프로젝트를 다운로드해서 사용자의 데이터 서비스 프로젝트에 추가하여 데이터 서비스에 이 기능을 추가할 수 있습니다. 이 샘플은 $format 쿼리 옵션을 제거하고 Accept 헤더를 application/json으로 변경합니다. 샘플 프로젝트를 포함하고 데이터 서비스에 JSONPSupportBehaviorAttribute를 추가하면 서비스에서 $format 쿼리 옵션 $format=json을 처리할 수 있습니다. $format=atom 또는 다른 사용자 지정 형식도 처리하려면 이 샘플 프로젝트를 추가로 사용자 지정해야 합니다.

WCF Data Services 동작

다음 WCF Data Services 동작은 OData 프로토콜에 의해 명시적으로 정의되지 않습니다.

기본 정렬 동작

데이터 서비스에 전송되는 쿼리 요청에 $top 또는 $skip 시스템 쿼리 옵션이 포함되어 있고 $orderby 시스템 쿼리 옵션이 없는 경우 반환된 피드가 키 속성을 기준으로 오름차순으로 정렬됩니다. 그 이유는 결과의 올바른 페이징을 보장하기 위해 정렬이 필요하기 때문입니다. 이를 위해 데이터 서비스가 쿼리에 정렬 식을 추가합니다. 이 동작은 데이터 서비스에 서버 기반 페이징이 활성화된 경우에도 발생합니다. 자세한 내용은 데이터 서비스 구성(WCF Data Services)을 참조하십시오. 반환된 피드의 정렬을 제어하려면 쿼리 URI에 $orderby를 포함해야 합니다.

참고 항목

관련 자료

데이터 서비스(WCF Data Services)

데이터 클라이언트(WCF Data Services)