Utilisation de la chaîne de requête dans les services Web REST
J'ai pensé qu'une caractéristique principale et la raison pour l'utilisation de services web REST a été d'utiliser le chemin d'accès des paramètres plutôt que les paramètres de la requête. Mais beaucoup de disponibles publiquement services web REST utiliser les paramètres de requête.
Suis-je tort de penser que les paramètres de la requête ne sont pas censés être utilisés dans les services web REST?
Est-il une recommandation ou d'une règle de ne pas utiliser les paramètres de la requête dans les services web REST?
source d'informationauteur Cyrus Rezai
Vous devez vous connecter pour publier un commentaire.
La chaîne de requête peut encore être utilisée dans les services web REST tout simplement pas de la même manière que la normale.
Vous avez à penser à l'URL comme clé à une ressource. L'URL est l'identificateur unique de la ressource. Par exemple
L'accès à
/products
doit retourner une liste complète des produits. L'ajout de l'id serait de retour d'un produit spécifique.Le problème avec l'aide de barres obliques pour chaque filtre
Ce que si vous souhaitez commander des produits d'une manière spécifique? Certains diront
Bien, maintenant, il y a une certaine ambiguïté au premier coup d'oeil. Est des états-unis un id? Bien que l'ambiguïté peut être résolu en disant qu'un identifiant est représenté comme
\d+
. Correct.Ok, donc notre première paramètres qui est faite de mots est un pays.
Maintenant disons que nous voulons ajouter d'autres filtres, permet d'essayer et d'ajouter plus de barres obliques.
Mais je ne veux pas des états-unis produits seulement! Mais encore veulent des produits de la maison.
Attendre... est la maison d'un pays? Je ne suis pas sûr maintenant, c'est un peu ambigu...
Et si je veux ajouter un autre filtre de demain? Que vais-je faire... ajouter plus de barres obliques?
L'URL devient encombré et plein d'ambigu paramètres qui étaient en option au début et qui deviennent obligatoires en raison de l'ambiguïté.
Mes conseils
De la bonne façon, pour moi, serait d'utiliser le chaîne de requête pour chose de spécifique au sujet de la requête.
Parce que, je peux trier la requête que je veux, c'est toujours la même requête. J'ai une requête produits.
De sorte que le formulaire doit être comme
De cette façon, vous pouvez ajouter de nouveaux filtres, quand vous le voulez et de garder les Url qui sont claires et ne brisera jamais, même si vous changer les filtres.
Plus d'informations
Si vous souhaitez plus d'informations, j'ai vraiment, vraiment vous conseillons de regarder cette conférence par David Zülke, un gars travaillant pour le framework Symfony. Il parle de beaucoup de choses, de REPOS, de services web, mais il a aussi parler plus précisément sur les Url, et comment les construire (Principalement à partir de 16 à 30 minutes).
Vous pouvez également regarder apigee site web. Ils ont beaucoup de vidéos (et des livres) sur le REPOS. Plus précisément cette vidéoce qui est vraiment sur le sujet ici.