Double Possible:
Rails 3 Itinéraire Personnalisé qui prend plusieurs id en paramètreCe que je comprends, un bon REPOS URL pour obtenir une ressource devrait ressembler à ceci:
/resource/{id}
Le problème que j'ai est que j'ai souvent besoin d'obtenir un grand nombre de ressources au même moment et ne veux pas en faire un distinct HTTP appel pour chacun d'eux.
Est-il soigné URL conception qui répondrait pour que ou est-ce tout simplement pas adapté pour une API REST?
Réponses
Trop de publicités?En fonction de votre réponse, la réponse à votre question consiste à créer une nouvelle ressource contenant cet ensemble d'informations unique. par exemple
GET /Customer/1212/RecentPurchases
La création d'URL composites comportant plusieurs identificateurs dans une seule URL limite les avantages des caches et ajoute une complexité inutile au serveur et au client. Lorsque vous chargez une page Web contenant de nombreux graphiques, vous ne voyez pas
GET /MyPage/image1.jpg;image2.jpg;image3.jpg
Cela ne vaut tout simplement pas la peine.
Je dirais /resources/foo,bar,baz
(séparateur peut varier selon l'Id de la nature et de vos préférences esthétiques, "foo+bar+baz
", "foo:bar:baz
", etc.). Ressemble un peu à "sémantiquement" plus propre qu' foo/bar/baz
("baz de la barre de foo"?)
Si l'Id de ressource sont numériques, peut-être, même avec une gamme de raccourci comme /resources/1,3,5-9,12
Ou, si vous avez besoin d'interroger pas exactement sur les ressources avec spécifique Id, mais sur le groupe de ressources ayant des propriétés spécifiques, peut-être quelque chose comme /resources/state=complete/size>1GiB/!active/
...
J'ai déjà utilisé quelque chose comme ça dans le passé.
/resources/a/d/
et cela retournerait entre x et Y une liste.
quelque chose comme
<resources>
<resource>a</resource>
<resource>b</resource>
<resource>c</resource>
<resource>d</resource>
</resources>
vous pouvez également effectuer des recherches plus avancées dans l’URL en fonction de la ressource utilisée.