J'ai une url pour récupérer les rendez-vous d'un utilisateur comme celui-ci:
/user/:userId/appointments
À quoi devrait ressembler l'URL si je souhaite obtenir des rendez-vous pour plusieurs utilisateurs?
devrait-ce être:
/appointments?users=1d1,1d2..
Merci Chris.
Les collections sont une ressource si/rendez-vous est bien comme ressource.
Les collections offrent aussi généralement des filtres via la chaîne de requête, qui est essentiellement ce que utilisateurs = id1, id2 ... est.
Alors,
/appointments?users=id1,id2
va bien en tant que ressource RESTful filtrée.
Je pense qu'il est préférable de sérialiser vos paramètres d'appel REST), généralement par codage JSON:
/appointments?users=[id1,id2]
ou même:
/appointments?params={users:[id1,id2]}
Ensuite, vous les décodez sur le serveur. Cela va vous donner plus de flexibilité à long terme.
Assurez-vous juste de bien utiliser URLEncode les paramètres avant de les envoyer!
Une autre façon de le faire, qui peut avoir du sens en fonction de l’architecture/de la structure de serveur de votre choix, consiste à répéter sans cesse le même argument. Quelque chose comme ça:
/appointments?users=id1&users=id2
Dans ce cas, je vous recommande d'utiliser le nom du paramètre au singulier:
/appointments?user=id1&user=id2
Ceci est supporté nativement par des frameworks tels que Jersey (pour Java). Jetez un oeil sur cette question pour plus de détails.
Cela a fonctionné pour moi.
/users?ids[]=id1&ids[]=id2
/appointments?users=1d1,1d2..
c'est bien. C'est quasiment votre seule option raisonnable puisque vous ne pouvez pas passer dans un corps avec un GET.