Je voudrais partiellement en désaccord avec Milan suggestion de l'intégration de la demande de représentation dans l'URI.
Si de toute façon possible, Uri doit uniquement être utilisée pour l'adressage des ressources et pas pour le tunneling HTTP méthodes/verbes. Finalement, spécifique de l'action entreprise (modifier, de verrouillage, etc.) pourrait être intégré dans l'URI, si créer des (POST) ou de mise à jour (METTRE) ne suffisent pas à répondre à l'objectif:
POST http://shonzilla.com/orders/08/165;modifier
Dans le cas de la demande d'une représentation particulière en URI que vous auriez besoin de perturber votre URI conception éventuellement rend plus laid, le mélange de deux distinctes RESTE concepts dans le même endroit (c'est à dire URI) et rend plus difficile le terme générique de traiter des requêtes sur le serveur-côté. Ce Milan est en train de suggérer et nombreux sont en train de faire la même chose, incl. Flickr, c'est exactement cela.
Au lieu de cela, un de plus Reposant approche consisterait à utiliser un autre endroit pour encoder préféré de représentation en utilisant Accept
- tête HTTP qui est utilisé pour la négociation de contenu où le client indique au serveur quels types de contenu, il peut gérer/le processus et le serveur tente de répondre à la demande du client. Cette approche est une partie de HTTP 1.1 standard, de logiciels compatibles et pris en charge par les navigateurs web ainsi.
Comparer ceci:
GET /orders/08/165.xml HTTP/1.1
ou
GET /commandes/08/165&format=xml HTTP/1.1
pour cela:
GET /commandes/08/165 HTTP/1.1
Accept: application/xml
À partir d'un navigateur web vous pouvez demander à tout type de contenu en utilisant setRequestHeader
méthode de XMLHttpRequest
objet. Par exemple:
fonction getOrder(année, yearlyOrderId, contentType) {
var client = new XMLHttpRequest();
client.open("GET", "/ordonnance/" + annee + "/" + yearlyOrderId);
client.setRequestHeader("Accepter", contentType);
client.envoyer(orderDetails);
}
Pour résumer: l'adresse, c'est à dire l'URI d'une ressource doit être indépendant de sa représentation et de l' XMLHttpRequest.setRequestHeader
méthode permet de demander la représentation à l'aide de l' Accept
- tête HTTP.
Cheers!
Shonzilla