Share via


리소스의 주소 지정(WCF Data Services)

WCF 데이터 서비스를 통해 엔터티를 사용할 수 있도록 설정하는 경우 리소스로 해당 엔터티의 주소를 지정할 수 있습니다.WCF 데이터 서비스 리소스는 HTTP를 사용하여 액세스할 수 있는 URI입니다.리소스의 주소를 지정하는 데이터 서비스 URI의 일반화된 형식은 다음과 같습니다.

http://<HostServer/ServiceName>/[<EntitySet>[(<Key>)[/<Property>[(<Key>)]/...]]][?QueryString]

WCF 데이터 서비스를 사용하면 서비스 작업을 나타내는 URI도 정의할 수 있습니다.자세한 내용은 서비스 작업(WCF Data Services)을 참조하십시오.

엔터티 리소스의 주소 지정

URI의 기본 부분은 다음과 같습니다.

  • 서비스 주소. URI의 첫 번째 부분인 데이터 서비스 주소에는 호스트 서버 이름과 확장명이 .svc인 서비스 이름이 포함됩니다.예를 들면 퀵 스타트의 서비스 주소는 https://localhost:12345/Northwind.svc와 같습니다. 여기서 localhost:12345는 호스트 서버이고 Northwind.svc는 서비스 이름입니다.서비스 주소는 데이터 서비스에 적합한 최소 URI이며 서비스 루트를 정의합니다.

  • 엔터티 집합 이름. 이 선택적 요소는 엔터티가 검색되는 엔터티 집합을 식별합니다.예를 들어, URI https://localhost:12345/Northwind.svc/Customers는 Northwind 데이터 서비스의 고객 엔터티 집합에 있는 모든 엔터티의 주소를 지정합니다.

  • 엔터티 키 값. 엔터티 집합 이름을 사용하는 경우 엔터티 키를 통해 집합에 속한 특정 엔터티 인스턴스의 주소를 지정할 수도 있습니다.하나 이상의 속성으로 구성된 엔터티 키를 사용하여 엔터티 집합의 단일 엔터티를 고유하게 식별합니다.예를 들어, URI https://localhost:12345/Northwind.svc/Customers('ALFKI')는 단일 키 값이 ALFKI인 특정 고객 엔터티 인스턴스의 주소를 지정합니다.

  • 속성 이름. 이 선택적 요소를 사용하면 https://localhost:12345/Northwind.svc/Customers('ALFKI')로 주소가 지정되는 엔터티와 같이 단일 엔터티 인스턴스 속성의 주소를 지정할 수 있습니다.속성은 다음 중 하나일 수 있습니다.

    • 스칼라 속성. 스칼라 속성은 문자열 또는 정수 값과 같은 단순 형식인 엔터티의 속성을 나타냅니다.예를 들어, URI https://localhost:12345/Northwind.svc/Customers('ALFKI')/ContactName은 Customer ALFKI의 ContactName 속성 값인 문자열을 반환합니다.

    • 탐색 속성. 탐색 속성은 엔터티 형식과 관련된 엔터티 집합을 식별합니다.이 속성을 사용하면 URI가 두 엔터티 형식 간의 관계를 이동할 수 있습니다.엔터티 집합처럼 탐색 속성에 액세스할 수 있습니다.탐색 속성에 액세스하려면 엔터티 집합 이름에 속성 이름을 추가하고 슬래시 "/"로 구분합니다.예를 들어, URI https://localhost:12345/Northwind.svc/Customers('ALFKI')/Orders는 특정 고객과 관련된 주문을 반환합니다.관련 엔터티 집합이 URI에 여러 개 포함되어 있는 경우 마지막 엔터티 집합의 엔터티 데이터만 반환됩니다.관련 엔터티의 그래프를 하나의 쿼리로 반환하려면 $expand 쿼리 옵션을 사용해야 합니다.

  • **쿼리 문자열.**WCF 데이터 서비스를 사용하면 쿼리 식의 결과를 기준으로 리소스의 주소를 지정할 수도 있습니다.쿼리 문자열은 URI로 주소가 지정된 엔터티를 변경, 제한 또는 확장하는 데 사용되는 쿼리 식입니다.예를 들어, 쿼리 문자열을 사용하면 Berlin으로 운송되는 ALFKI 주문만 반환하도록 리소스를 필터링하는 URI https://localhost:12345/Northwind.svc/Customers('ALFKI')/Orders?filter=ShipCity%20eq%20'Berlin'처럼 평가된 식에서 리소스 집합을 선택할 수 있습니다.또는 $expand 쿼리 연산자를 사용하여 ALFKI와 관련된 모든 주문 엔터티를 포함하는 응답을 반환하는 URI https://localhost:12345/Northwind.svc/Customers('ALFKI')?$expand=Orders처럼 관련 엔터티를 요청된 엔터티와 함께 같은 응답으로 반환할 수 있습니다.자세한 내용은 쿼리 식(WCF Data Services)을 참조하십시오.쿼리 문자열은 IQueryable 인스턴스를 반환하는 서비스 작업에 쿼리 식을 제공하는 데에도 사용됩니다.자세한 내용은 서비스 작업(WCF Data Services)을 참조하십시오.

URI를 사용하여 요청 메시지에서 리소스의 주소를 지정하는 방법의 예는 방법: 리소스에서 데이터 검색(WCF Data Services)을 참조하십시오.

다른 끝점의 주소 지정

WCF 데이터 서비스는 엔터티 리소스를 반환하지 않는 주소 지정이 가능한 다음 서비스 끝점도 정의합니다.

  • 루트 데이터 서비스 끝점 - 데이터 서비스를 사용하여 액세스할 수 있는 엔터티 집합을 설명하는 서비스 문서를 반환하는 데이터 서비스 루트입니다.

  • 데이터 모델 메타데이터 끝점($metadata) - 데이터 서비스 공급자에 의해 정의된 모델의 메타데이터를 반환합니다.

  • 쿼리 수 끝점($count) - 지정된 URI에 의해 반환되는 엔터티 리소스 수인 정수 값을 반환합니다.이 수는 리소스 집합을 반환하는 올바른 쿼리 URI에 $count 식을 추가할 때 반환됩니다.

자세한 내용은 특수 리소스 경로(WCF Data Services)을 참조하십시오.

연결 리소스의 주소 지정

WCF 데이터 서비스를 사용하면 엔터티 집합과 엔터티 인스턴스의 주소를 지정하는 것 외에도 엔터티 간의 관계를 나타내는 연결의 주소를 지정할 수 있습니다.이 기능을 통해 Northwind 샘플 데이터베이스의 지정된 주문과 관련된 운송업체와 같이 두 엔터티 인스턴스 간의 관계를 만들거나 변경할 수 있습니다.$links 연산자를 사용하여 엔터티 간 연결의 주소를 지정할 수 있습니다.예를 들어, 다음 URI는 HTTP PUT 요청 메시지에 지정되어 지정한 주문의 운송업체를 새 운송업체로 변경합니다.

https://localhost:12345/Northwind.svc/Orders(10643)/$links/Shippers

이 경우 PUT 요청의 페이로드에 기존 운송업체의 URI가 포함됩니다.

주소 지정 시 고려 사항

데이터 서비스 리소스의 주소를 지정하는 URI를 생성하는 경우 다음 사항을 고려해야 합니다.

  • 엔터티 집합이 기본 엔터티 컨테이너에 없는 경우 /<ServiceName>/<EntityContainer>.<EntitySet> 구문을 사용하여 엔터티 집합 이름 앞에 엔터티 컨테이너 이름을 추가해야 합니다.

  • 복합 키 조건자에서는 키의 순서가 매우 중요합니다.클라이언트는 데이터 서비스의 CSDL(개념 스키마 정의 언어) 설명에 키 값이 표시된 순서에 따라 복합 키에서 키 값을 구성해야 합니다.그렇지 않으면 잘못된 리소스가 반환될 수 있습니다.

  • /$links/<segment> 뒤에는 추가 경로 세그먼트를 사용할 수 없습니다.예를 들어, URI https://localhost:12345/Northwind.svc/Orders(10643)/$links/Shippers에서는 'Shippers' 뒤에 경로 세그먼트가 올 수 없습니다.추가 경로 세그먼트가 있으면 400 Bad Request 응답이 반환됩니다.

  • $filter처럼 $로 시작하는 쿼리 옵션은 $links를 사용하여 링크 주소를 지정하는 URI 요청에서 사용할 수 없습니다.이러한 쿼리 옵션이 있으면 400 Bad Request 응답이 반환됩니다.

관련 단원

이 항목에서는 WCF 데이터 서비스에서 지원되는 URI 주소 지정 구성표에 대한 기본 정보를 제공합니다.이 주소 지정 구성표에 대한 보다 자세한 정보가 필요한 경우 Atom Publishing Protocol: Data Services URI and Payload Extensions 사양의 2.2.3.1 URI Syntax 항목을 참조하십시오.

참고 항목

개념

특수 리소스 경로(WCF Data Services)

방법: 리소스에서 데이터 검색(WCF Data Services)