2010-11-12 1 views
1

Chaque ressource que je rencontre sur Internet décrit toujours très bien ce que vous pouvez faire avec l'opération GET, comment cela fonctionne et ainsi de suite, car elle n'explique jamais le POST/PUT/DELETE et en particulier le format des données passer dans le corps HTTP (j'utilise JSON). Il dit toujours "vous pouvez faire une demande de poste et transmettre les données appropriées dans le corps". Je suis aux prises avec ce que je peux faire et non. Par exemple, je veux savoir s'il est possible de mettre à jour un champ d'une entrée en envoyant simplement la valeur mise à jour, et non l'objet entier.Existe-t-il une ressource qui explique tout sur les opérations PUT, POST, DELETE dans les services de données WCF?

Existe-t-il un document expliquant clairement les possibilités et les limites?

Merci beaucoup.

Répondre

0

Facile à lire la documentation est ici: http://www.odata.org/developers/protocols

Si vous voulez tous les détails sales et une langue stricte, vous pouvez lire ce document: http://msdn.microsoft.com/en-us/library/dd541188(PROT.10).aspx

Vous pouvez modifier une valeur d'une propriété unique en envoyant un Demande PUT. Par exemple, si vous envoyez un GET à l'adresse suivante:

http://services.odata.org/(S(kupqbta5wqnfz2cln1qk052x))/OData/OData.svc/Products(0)/Name 

Et vous demander JSON (par un en-tête Accept), la réponse sera:

{ 
"d" : { 
"Name": "Bread" 
} 
} 

L'enveloppe « d » est là que pour éviter les attaques XSS de sorte que ne doivent pas être inclus dans les demandes, mais le reste reste le même, donc si vous l'envoyez une demande PUT comme ceci:

PUT http://services.odata.org/(S(kupqbta5wqnfz2cln1qk052x))/OData/OData.svc/Products(0)/Name HTTP/1.1 
Host: services.odata.org 
Content-Type: application/json 
Content-Length: 20 

{ 
"Name": "Meat" 
} 

Il mettra à jour le nom de la propriété t o valoriser la viande. Vous pouvez également envoyer un PUT à la valeur elle-même, dans ce cas, l'URL se terminerait par la valeur $ (indique la valeur brute de la propriété) comme ceci:

PUT http://services.odata.org/(S(kupqbta5wqnfz2cln1qk052x))/OData/OData.svc/Products(0)/Name/$value HTTP/1.1 
Host: services.odata.org 
Content-Type: text/plain 
Content-Length: 4 

Meat 

Notez que cela ne fonctionne que sur les propriétés primitives bien. Le service exemple sur odata.org vous permet de faire des modifications (gardées par la clé de session dans l'URL), donc vous pouvez y jouer avec.

0

Google pour la spécification HTTP 1.1.

Questions connexes