alors je suis les modèles User
& Poll
où un utilisateur peut créer de nombreux sondages (donc nous avons eu 1: n relation ici) et la table de jointure Participant
en tant qu'utilisateur peut faire partie d'un grand nombre sondages et un sondage peuvent avoir de nombreux utilisateurs.URL REST conception pour plusieurs à plusieurs
J'ai besoin de définir deux points d'extrémité REST: One pour obtenir une liste de sondages créés par un utilisateur et un pour obtenir une liste des sondages où un utilisateur est un participant.
Pour le premier point, je définis:
GET /users/:id/polls
... ce qui est de la manière habituelle de définir 1: n relations. Mais pour le second point de terminaison, je suis complètement désemparé comment cela pourrait ressembler à REST. J'ai essentiellement l'utilisateur et j'ai besoin de tous les sondages où l'utilisateur est un participant. Je veux faire avancer les choses et ne veulent pas perdre trop de temps, donc je suis venu avec cette abomination:
GET /users/:id/polls/participation
Quelqu'un at-il une idée saine d'esprit comment cela peut être conçu? Est-il même possible de mapper ceci en un seul appel avec REST?
Donc, dans l'exemple un, vous utiliseriez le paramètre 'participant' pour' Poll', bien que ce ne soit qu'une propriété virtuelle? Je vois que 'created_by' est légitime car c'est une vraie propriété sur' Poll'. – codepushr
@codepushr Oui. Il n'existe aucune règle indiquant que seules les propriétés d'une ressource peuvent être interrogées. –
@codepushr Désolé, je veux clarifier quelque chose. Les participants sont les propriétés de la * ressource *. Ils ne sont pas des propriétés de la * représentation * que vous fournissez à vos clients. Et vos ressources et vos représentations sont des entités conceptuelles totalement séparées du modèle de données pratique pour le stockage de votre base de données, de la même manière que vous ne limitez pas la conception de votre interface utilisateur pour la mapper directement à votre base de données. –