Réponse tardive mais je vais ajouter une idée supplémentaire à ce qui a été partagé, à savoir qu'il existe plusieurs types de "paramètres" à une demande, et vous devriez prendre cela en compte.
- Les Locators - E. g. identificateurs de ressources telles que l'Id ou l'action/afficher
- Filtres - E. g. des paramètres qui donnent une recherche, de tri ou de restreindre le jeu de résultats.
- L'état - E. g. identification de la session, les clés api, whatevs.
- Contenu - E. g. le stockage de données.
Examinons maintenant les différents endroits où ces paramètres pourrait aller.
- En-têtes de requête et cookies
- Chaîne de requête URL ("GET" vars)
- Les chemins d'URL
- Corps de chaîne de requête/multipart ("POST" vars)
En général, vous voulez de l'État à définir dans les en-têtes ou les cookies, en fonction du type d'informations d'état il est. Je pense que nous pouvons tous être d'accord sur ce point. Utiliser les en-têtes http personnalisés (X-Ma-Tête), si vous en avez besoin.
De même, le Contenu n'a qu'un lieu d'appartenance, qui est dans le corps de la requête, soit en tant que chaînes de requête ou en http en plusieurs parties et/ou le contenu JSON. Ceci est cohérent avec ce que vous recevez à partir du serveur lors de l'envoi de votre contenu. Donc, vous ne devriez pas être impoli et le faire différemment.
Les Locators comme "id=5" ou "action=actualiser" ou "page=2" serait plus logique d'avoir l'adresse de l'URL, comme mysite.com/article/5/page=2
où en partie, vous savez ce que chaque partie est censée signifier (les principes de base tels que l'article et 5 signifie évidemment m'obtenir les données de type article avec l'id 5) et d'autres paramètres sont spécifiés en tant que partie de l'URI. Ils peuvent être sous la forme d' page=2
ou page/2
si vous savez qu'après un certain point dans l'URI les "dossiers" sont jumelés valeurs-clés.
Les filtres de toujours aller dans la chaîne de requête, parce que pendant qu'ils sont une partie de la recherche de la droite de données, ils ne sont là que pour retourner un sous-ensemble ou de la modification de ce que les Localisateurs d'y retourner seul. La recherche en mysite.com/article/?query=Obama
(sous-ensemble) est un filtre, et donc, est - /article/5?order=backwards
(modification). Pensez à ce que cela ne, pas seulement ce qu'il a appelé!
Si la "vue" détermine le format de sortie, puis c'est un filtre (mysite.com/article/5?view=pdf
) parce qu'elle renvoie à une modification d'une ressource, plutôt qu'en se focalisant sur les ressources que nous voulons. Si au lieu de cela, il décide de la partie spécifique de l'article, nous arrivons à voir (mysite.com/article/5/view=summary
) alors c'est un localisateur.
Rappelez-vous, de circonscrire un ensemble de ressources est de filtrage. Localiser quelque chose de spécifique à l'intérieur d'une ressource est la localisation des... duh. Sous-ensemble de filtrage peut retourner n'importe quel nombre de résultats (même à 0). Localisation trouverez toujours cette instance spécifique de quelque chose (si elle existe). Modification de filtrage sera de retour les mêmes données que le locator, à l'exception modifié (si une telle modification n'est permise).
Espérons que cela a contribué à donner aux gens une certaine eureka moments s'ils ont été perdus sur où mettre les choses!