Après avoir démarré le service de données REST d'eXtreme Scale,
vous pouvez utiliser n'importe quel client HTTP pour interagir avec ce service. Un navigateur Web, un client PHP, un client Java ou un client WCF Data Services,
tous peuvent être utilisés pour lancer n'importe quelle opération de demande prise en charge.
Le service de données REST implémente
un sous-ensemble de Microsoft Atom
Publishing Protocol : Data Services URI et la spécification Payload Extensions
version 1.0 qui fait partie du protocole OData.
Cette rubrique indiquent et décrit les fonctionnalités de la spécification qui sont prises en charge et leur mappage à eXtreme Scale.
URI de racine du service
Microsoft WCF Data Services définit normalement
un service par source de données ou par modèle d'entité. Le service de données REST d'eXtreme Scale
définit un service par ObjectGrid défini. Chaque ObjectGrid
qui est défini dans le fichier XML de substitution par client ObjectGrid eXtreme Scale
est automatiquement exposé comme racine distincte de service REST.
L'URI
de la racine du service est :
http://hôte:port/racine_contexte/restservice/nom_grille
Où :
- racine_contexte est défini lorsqu'on déploie l'application de service de données REST
et dépend du serveur d'applications
- nom_grille est le nom de l'ObjectGrid
Types de demande
La liste suivante décrit les types de demande Microsoft WCF
Data Services pris en charge par le service de données REST d'eXtreme Scale. Pour les détails de chacun des types de demande pris en charge par WCF Data Services,
voir MSDN: Request Types.
- Types de demande Insert
Les clients peuvent insérer des ressources
à l'aide du verbe HTTP POST, mais avec les limitations suivantes :
- demande InsertEntity : prise en charge
- demande InsertLink : prise en charge
- demande InsertMediaResource : non prise en charge en raison des restrictions sur la prise en charge des supports
Pour des informations complémentaires, voir
MSDN: Insert Request Types.
- Types de demande Update
Les clients peuvent actualiser des ressources à l'aide des verbes HTTP
PUT et MERGE, avec les limitations suivantes :
- demande UpdateEntity : prise en charge
- demande UpdateComplexType : non prise en charge en raison des restrictions sur les types complexes
- demande UpdatePrimitiveProperty : prise en charge
- demande UpdateValue : prise en charge
- demande UpdateLink : prise en charge
- demande UpdateMediaResource : non prise en charge en raison des restrictions sur la prise en charge des supports
Pour des informations complémentaires, voir
MSDN: Insert Request types.
- Types de demande Delete
Les clients peuvent supprimer des ressources
à l'aide du verbe HTTP DELETE, mais avec les limitations suivantes :
- demande DeleteEntity : prise en charge
- demande DeleteLink : prise en charge
- demande DeleteValue : prise en charge
Pour des informations complémentaires, voir
MSDN: Delete Request Types.
- Types de demande Retrieve
Les clients peuvent extraire des ressources
à l'aide du verbe HTTP GET, mais avec les limitations suivantes :
- demande RetrieveEntitySet : prise en charge
- demande RetrieveEntity : prise en charge
- demande RetrieveComplexType : non prise en charge en raison des restrictions sur les types complexes
- demande RetrievePrimitiveProperty : prise en charge
- demande RetrieveValue : prise en charge
- demande RetrieveServiceMetadata : prise en charge
- demande RetrieveServiceDocument : prise en charge
- demande RetrieveLink : prise en charge
- demande Retrieve contenant un mappage personnalisable de flux : non prise en charge
- demande RetrieveMediaResource : non prise en charge en raison des restrictions sur les ressources de supports
Pour des informations complémentaires, voir
MSDN: Retrieve Request Types.
- Options système des requêtes
Les requêtes sont prises en charge qui permettent aux clients
d'identifier une collection d'entités ou une entité seule. Les options système de requête
sont spécifiées dans un URI de service de données et sont prises en charge avec les limitations suivantes :
- $expand: prise en charge
- $filter: prise en charge
- $orderby: prise en charge
- $format: non pris en charge. Le format acceptable est identifié
dans l'en-tête Accept des demandes HTTP
- $skip: prise en charge
- $top: prise en charge
Pour des informations complémentaires, voir
MSDN: System Query Options.
- Routage des partitions
Le routage des partitions se base sur l'entité racine. Un URI de demande infère une entité racine si son chemin de ressource commence par une entité racine
ou par une entité qui a une association directe ou indirecte avec l'entité. Dans un environnement partitionné, toute demande
incapable d'inférer une entité racine sera rejetée. Toute demande qui infère une entité racine
sera routée vers la bonne partition.
Pour des informations complémentaires sur la définition de schémas avec des associations et des entités racines, voir Evolutivité du modèle de données dans eXtreme Scale et Partitionnement.
Demande Invoke
Les demandes Invoke ne sont pas prises en charge.
Pour des informations complémentaires, voir MSDN: Invoke Request.
Demande par lot
Les clients peuvent traiter par lots dans la même demande plusieurs ensembles de modifications ou plusieurs opérations de requête. Cela permet de réduire le nombre des aller-retour vers le serveur
et autorise plusieurs demandes à participer à la même transaction. Pour des informations complémentaires, voir MSDN: Batch Request.
Demandes placées en tunnel
Les demandes placées en tunnel ne sont pas prises en charge. Pour des informations complémentaires, voir MSDN: Tunneled Requests.