Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Adressage des ressources (WCF Data Services)

Lorsque vous rendez des entités disponibles via WCF Data Services, vous pouvez adresser ces entités comme ressources.Les ressources WCF Data Services sont des URI accessibles à l'aide du protocole HTTP.Voici le format généralisé d'un URI des services de données qui adresse une ressource :

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

WCF Data Services vous permet également de définir un URI qui représente une opération de service.Pour plus d'informations, consultez Opérations de service (WCF Data Services).

Les composants de base d'un URI sont les suivants :

  • Adresse du service. En tant que première partie d'un URI, l'adresse du service de données inclut le nom du serveur hôte et le nom du service dont l'extension est .svc.Par exemple, l'adresse du service de démarrage rapide ressemble à http://localhost:12345/Northwind.svc, où localhost:12345 est le serveur hôte et Northwind.svc est le nom du service.L'adresse du service est l'URI valide minimum d'un service de données, et elle définit la racine du service.

  • Nom du jeu d'entités. Cet élément facultatif identifie le jeu d'entités dans lequel les entités sont récupérées.Par exemple, l'URI http://localhost:12345/Northwind.svc/Customers adresse toutes les entités du jeu d'entités Customer du service de données Northwind.

  • Valeur de clé d'entité. Le nom de jeu d'entités vous permet également d'adresser une instance d'entité spécifique du jeu à l'aide d'une clé d'entité.Une clé d'entité, qui se compose d'une ou plusieurs propriétés, vous permet d'identifier de manière unique une entité unique dans un jeu d'entités.Par exemple, l'URI http://localhost:12345/Northwind.svc/Customers('ALFKI') adresse une instance spécifique du type d'entité Customer dont la valeur de clé unique est ALFKI.

  • Nom de propriété. Cet élément facultatif vous permet d'adresser la propriété d'une instance d'entité unique, telle que l'entité adressée par http://localhost:12345/Northwind.svc/Customers('ALFKI')Ces propriétés peuvent être l'une des valeurs suivantes :

    • Propriété scalaire. Une propriété scalaire représente une propriété d'une entité d'un type simple, telle qu'une valeur entière ou de chaîne.Par exemple, l'URI http://localhost:12345/Northwind.svc/Customers('ALFKI')/ContactName retourne une chaîne qui correspond à la valeur de la propriété ContactName pour le client ALFKI.

    • Propriété de navigation. Une propriété de navigation identifie un jeu d'entités associé au type d'entité.Cela permet à un URI de parcourir la relation entre deux types d'entité.Une propriété de navigation est accessible comme un jeu d'entités.Pour accéder à une propriété de navigation, ajoutez le nom de propriété au nom du jeu d'entités en les séparant d'une barre oblique « / ».Par exemple, l'URI http://localhost:12345/Northwind.svc/Customers('ALFKI')/Orders retourne des commandes associées à un client spécifique.Lorsqu'il y en a plusieurs, les jeux d'entités connexes sont inclus dans l'URI, seules les données d'entité du dernier jeu d'entités sont retournées.Pour retourner un graphique d'entités connexes dans une requête unique, vous devez utiliser l'option de requête $expand.

  • Chaîne de requête.WCF Data Services vous permet également d'adresser des ressources selon les résultats d'expressions de la requête.La chaîne de requête est une expression de requête utilisée pour modifier, restreindre ou développer les entités adressées par un URI.Par exemple, les chaînes de requête permettent de sélectionner des jeux de ressources sur une expression évaluée, comme dans l'URI http://localhost:12345/Northwind.svc/Customers('ALFKI')/Orders?filter=ShipCity%20eq%20'Berlin', ce qui filtre les ressources afin de ne retourner que les commandes pour ALFKI destinées à Berlin.L'opérateur de requête $expand vous permet aussi de retourner des entités connexes avec une entité demandée dans la même réponse, comme dans l'URI http://localhost:12345/Northwind.svc/Customers('ALFKI')?$expand=Orders qui retourne une réponse qui contient toutes les entités de commande associées à ALFKI.Pour plus d'informations, consultez Expressions de requête (WCF Data Services).La chaîne de requête est également utilisée pour fournir une expression de requête à une opération de service qui retourne une instance IQueryable.Pour plus d'informations, consultez Opérations de service (WCF Data Services).

Pour obtenir des exemples d'utilisation d'un URI pour adresser des ressources dans un message de requête, consultez Procédure : récupérer des données d'une ressource (WCF Data Services).

WCF Data Services définit également les points de terminaison de service adressables suivants qui ne retournent pas de ressources d'entité :

  • Point de terminaison de service de données racine - racine du service de données qui retourne le document de service qui décrit les jeux d'entités accessibles à l'aide du service de données.

  • Point de terminaison des métadonnées du modèle de données ($metadata) - retourne les métadonnées pour le modèle défini par le fournisseur de services de données.

  • Point de terminaison du nombre de requêtes ($count) - retourne une valeur entière qui est le nombre des ressources d'entité retournées par un URI donné.Le nombre est retourné lorsque l'expression $count est ajoutée à un URI de requête valide qui retourne un jeu de ressources.

Pour plus d'informations, consultez Chemins d'accès de ressource spéciaux (WCF Data Services).

En plus d'adresser des jeux d'entités et des instances d'entité, WCF Data Services vous permet d'adresser les associations qui représentent des relations entre des entités.Cette fonctionnalité vous permet de créer ou de modifier une relation entre deux instances d'entité, telles que l'expéditeur associé à un ordre donné dans l'exemple de base de données Northwind.Vous pouvez utiliser l'opérateur $links pour adresser les associations entre des entités.Par exemple, l'URI suivant est spécifié dans un message de demande HTTP PUT pour remplacer l'expéditeur pour l'ordre spécifié par un nouvel expéditeur.

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

Dans ce cas, la charge utile de la demande PUT contient l'URI d'un expéditeur existant.

Vous devez considérer les éléments suivants lorsque vous construisez des URI pour adresser des ressources de service de données :

  • Si un jeu d'entités n'est pas dans le conteneur d'entité par défaut, vous devez ajouter au nom de jeu d'entités le nom du conteneur d'entités à l'aide de la syntaxe suivante : /<ServiceName>/<EntityContainer>.<EntitySet>.

  • L'ordre des clés dans un prédicat de clé composée est important.Un client doit organiser les valeurs de clés dans une clé composée dans le même ordre que celui où elles apparaissent dans la description CSDL (Conceptual Schema Definition Language) d'un service de données.Sinon, une ressource incorrecte peut être retournée.

  • Aucun segment de chemin d'accès supplémentaire n'est autorisé après : /$links/<segment>.Par exemple : un segment de chemin d'accès ne peut pas figurer après 'Shippers' dans l'URI suivant : http://localhost:12345/Northwind.svc/Orders(10643)/$links/Shippers.La présence de tout segment de chemin d'accès supplémentaire entraîne l'envoi d'une réponse 400 Bad Request.

  • Aucune option de requête commençant par $, telle que $filter, n'est autorisée à être présente sur toute requête à un URI qui adresse un lien à l'aide de $links.La présence d'une telle option de requête entraîne l'envoi d'une réponse 400 Bad Request.

Cette rubrique fournit des informations détaillées sur le modèle d'adressage d'URI pris en charge par WCF Data Services.Pour obtenir plus d'informations détaillées sur ce modèle d'adressage, consultez la rubrique 2.2.3.1 URI Syntaxe dans Atom Publishing Protocol: Data Services URI and Payload Extensions specification (en anglais).

Afficher: