2012-06-07 4 views
0

Je suis en train d'apprendre REST et j'essaie de comprendre comment l'appliquer en pratique. J'ai un échantillon de données que je veux interroger, mais je ne suis pas sûr de savoir comment les URL doivent être formées, c'est-à-dire où je place la requête. Par exemple, pour effectuer des requêtes les plus récentes 100 enregistrements de données:Paramètres REST vs URI

GET http://data.com/data/latest/100 
GET http://data.com/data?amount=100 

qui des deux précédentes requêtes est le mieux, et pourquoi? Et la même chose pour ce qui suit:

GET http://data.com/data/latest-days/2 
GET http://data.com/data?days=2 
GET http://data.com/data?fromDate=01-01-2000 

Merci d'avance.

+1

juste une remarque: les URL devraient rester d'importance secondaire: REST se concentrer sur le contenu. Ce qui vous laisserait libre de choisir celui que vous préférez ... Personnellement, je préfère cependant la version de la chaîne de requête. – jmclem

Répondre

2

Personnellement, j'utiliserais le format de chaîne de requête dans ce cas. Si votre chemin /data renvoie toutes les données et que vous souhaitez effectuer ce type de requête, je crois que cela est le plus logique. Vous pouvez également passer des paramètres de chaîne de requête tels que ?since=01-01-2000 pour obtenir des entrées après une date spécifiée ou transmettre des noms de colonnes tels que ?category=clothing pour récupérer toutes les entrées avec des vêtements de catégorie égale.

En outre, vous souhaiterez que des chemins tels que /data/{id} soient disponibles pour récupérer certaines entrées étant donné leur identifiant unique.

2

Cela dépend vraiment de beaucoup de choses. Si vous utilisez une sorte de framework MVC, vous utiliserez les segments URI pour définir votre demande d'accès à votre API que je préfère personnellement.

Ce n'est pas un gros problème de toute façon, tout dépend de la préférence et de la prévisibilité que vous voulez que l'URL soit pour votre utilisateur. Dans certains cas, je dirais aller avec les paramètres REST, mais le plus souvent un GET basé sur URI est assez propre si votre installation le prend en charge.