Share via


Formato de URI de los recursos de direccionamiento (marco de trabajo de los servicios de datos de ADO.NET)

Todas las entidades a las que se puede tener acceso en los servicios de datos de ADO.NET son direccionables mediante URI. Los URI de los servicios de datos de ADO.NET se ajustan a la gramática de URI genérico y usan el protocolo de transferencia de hipertexto (HTTP). Los URI de los servicios de datos de ADO.NET están formados por tres secciones: raíz del servicio, ruta de acceso del recurso y opciones de consulta, que forman el URI utilizado para direccionar los recursos de los servicios de datos de ADO.NET.

Raíz del servicio

Esta sección del URI representa la ubicación de la raíz de los servicios de datos de ADO.NET. El recurso asociado con la raíz de los servicios de datos de ADO.NET describe todos los elementos EntitySet, AssociationSet, así como las operaciones de servicio del servicio. Los URI válidos que incluyen sólo el esquema y los elementos de nombre de servicio son:

  • https://www.contoso.com

  • http://::1:8080/myservice.svc

  • https://www.contoso.com/path/myservice.svc/

Ruta de acceso del recurso

El elemento de ruta de acceso del recurso del URI establece cómo se pueden formar los nombres de conjunto de entidades, propiedad de navegación, vínculo de navegación, propiedad, tipo complejo y operación de servicio para generar un URI que identifique un recurso de los servicios de datos de ADO.NET.

Este elemento del URI permite el filtrado y el paso por el gráfico de las entidades de un servicio de datos. Esta sección no incluye ninguna construcción para cambiar el formato de la respuesta de una solicitud al URI especificado. Para obtener información sobre cómo cambiar el formato de respuesta, vea Opciones de consulta de los servicios de datos de ADO.NET.

Los URI válidos que incluyen el esquema, la raíz del servicio y la ruta de acceso del recurso son:

  • https://www.contoso.com/myservice.svc/Customers

  • https://www.contoso.com/Customers(123)

  • https://www.contoso.com/Customers(123)/Orders

  • https://www.contoso.com/Customers(123)/$links/Orders

  • https://www.contoso.com/Products(ID=’ABC’)/Category

  • https://www.contoso.com/Teams(Conference=’ACC’, League=’NCCC’)/Roster

Para obtener más información sobre la sintaxis de ruta de acceso del recurso, vea Semántica y reglas de rutas de acceso de recursos (marco de trabajo de los servicios de datos de ADO.NET).

Opciones de consulta

Esta sección del URI especifica dos tipos de información: las opciones de consulta del sistema y los parámetros de la operación de servicio. Las opciones de consulta se ajustan a las siguientes reglas:

  • Cualquier número de opciones de consulta admitidas se puede especificar en una sola cadena de consulta de URI.

  • Cada opción de consulta se puede presentar en una cadena de consulta independiente de la presencia de cualquier otra opción.

  • El orden de las opciones de consulta de un URI es no significativo.

  • La opción de consulta distingue mayúsculas de minúsculas.

  • Los valores de las opciones de consulta distinguen mayúsculas de minúsculas.

  • Una opción de consulta del sistema específica sólo puede aparecer una vez en la cadena de consulta de un URI de solicitud.

Para obtener más información sobre la semántica de una consulta, vea Opciones de consulta de los servicios de datos de ADO.NET y Opciones de consulta del sistema de servicios de datos de ADO.NET.

Ejemplos

Los siguientes URI son ejemplos de la sintaxis de los servicios de datos de ADO.NET. Cada uno de ellos incluye una descripción de cómo los analiza el servicio.

De todos los elementos Orders del origen de datos, sólo se devuelve el elemento Orders con la propiedad ID igual a 201.

http://host/service.svc/Orders?$filter=ID%20eq%201

Coincidencia de todos los elementos Customers con el valor de la propiedad fullname igual a 'Jones, David'.

http://host/service.svc/Customers?$filter=
         'Jones, David' eq insert(fullname, length(lastname), ',')

La expresión aritmética se analiza como 1 + (2 * 3), en vez de (1 + 2) * 3. La expresión de filtro es un caso de prueba que se evalúa siempre en true. Por lo tanto, el URI representa una solicitud para todos los elementos OrderLines.

http://host/service.svc/OrderLines?$filter=1 add 2 mul 3 lt 10

Sintaxis abstracta

En las siguientes reglas se muestran los elementos de la sintaxis de la creación de un URI de los servicios de datos de ADO.NET de la forma definida en la especificación incrementada del formulario Backus–Naur definida en RFC 4234. Un URI de los servicios de datos de ADO.NET está formado por tres secciones: raíz del servicio, ruta de acceso del recurso y opciones de consulta que, cuando se forman, constituyen el URI para direccionar los recursos de un servicio de datos de ADO.NET.

ADO.NET_DS_URI   = "http://" serviceRoot [ resourcePath ["?" queryOptions ] ] 

ServiceRoot      = host [ ":" port ] [*( "/" segment-nz )]

ResourcePath     = "/" EntitySet | serviceOperation [ navPath ]  

navPath          = ("("keyPredicate")" [ navPath_np / propertyPath / propertyPath_ct ] )

navPath_np       = "/" ("$links" / NavigationProperty) /
                     (NavigationProperty [ navPath ])

EntityPropertyPath     = "/" EntityProperty [ "/$value" ] 

ComplexTypePropertyPath_ct  = 1*("/" ComplexType) [ propertyPath ] 
  
keyPredicate     = keyPredicate_single | keyPredicate_cmplx

keyPredicate_single  = 1*DIGIT | ("’" 1*unreserved "’") | 1*(HEXDIGHEXDIG)) | 
                       keyPredicate_complex
                       //NOTE: strings, GUIDs and dates are quoted

keyPredicate_cmplx   = resourceProp "=" keyPredicate [“,” keyPredicate_cmplx]

queryOptions     = sysQueryOperation / serviceOpParamName 
                     *("&" sysQueryOperation / serviceOpParam)

DIGIT            = as defined in RFC 3986 (0-9)
Host             = as defined in RFC 3986
Port             = as defined in RFC 3986
segment-nz       = as defined in RFC 3986 (A non empty sequence of chars outside set of URI reserved characters.)
pchar            = as defined in RFC 3986 (A non empty sequence of chars outside set of URI reserved characters.)

serviceOperation = the name of a service operation. 

EntitySet      = the name of an EntitySet. Allowed characters match the set of allowed characters for EntitySet names in the EDM specification.

EntityType = The name of an EntityType within the EntitySet referenced in the prior path segment. Allowed characters match the set of allowed characters for EntityType names in the EDM specification.

Property     = The name of a property on the entity type or complex type in the prior path segment or current path segment if filtering by key. Allowed characters match the set of allowed characters for EntityType property names in the EDM specification.  

NavigationProperty = the name of a NavigationProperty or Navigation Link on the EntityType in the prior path segment. If the prior segment is an EntitySet,this property must be on the type within the given set. Allowed characters match the set of allowed characters for NavigationProperty names in the EDM specification.

systemQueryOperation = "$" query "=" query 

serviceOperationParam    = query "=" query  

Para obtener más información y ejemplos de la sintaxis de los URI, vea Semántica y reglas de rutas de acceso de recursos (marco de trabajo de los servicios de datos de ADO.NET).

Vea también

Conceptos

Semántica y reglas de rutas de acceso de recursos (marco de trabajo de los servicios de datos de ADO.NET)
Opciones de consulta de los servicios de datos de ADO.NET
Opciones de consulta del sistema de servicios de datos de ADO.NET