Organisation d'une API

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,
Je crée actuellement ma toute première API pour une petite application faite avec Laravel. J’ai actuellement deux modèles, User et Event. Un user possède plusieurs events (relation OneToMany) que j’appelle les owned_events et un event possède plusieurs utilisateurs comme les utilisateurs possèdes plusieurs events (relation ManyToMany), les guests. Pour simplifier, un événement a un créateur et possède une liste d’invités.

J’aimerai faire une API afin d’accéder à l’ensemble de ces données. Mais je n’ai absolument comment organiser mes URL. Ce que j’ai pour le moment :

  • get api/event : récupère tous les événements
  • post api/event : crée un nouvel événement
  • get api/event/{id} : récupère l’événement avec l’id
  • put api/event/{id} : modifie l’événement

Et exactement la même organisation avec les user.

Le problème est qu’une invitation a plusieurs états, en attente, acceptée, pas sûre et refusée. Comment récupérer la liste des utilisateurs qui ont acceptés l’invitation ? Quelle est l’url la plus propre pour récupérer la liste des événements de l’utilisateurs ? api/user/{id}/owned_event ou api/event/user/{id} ? J’avoue être un peu perdu…

Merci de votre aide ! :)

+0 -0

Cette réponse a aidé l'auteur du sujet

Tu devrais te renseigner sur les principes REST, ça te donnerait d’assez bonne indications ;-)

Si tu veux les events d’un utilisateur, il faut descendre l’arborescence, donc un truc du genre /api/users/{id}/events me semble logique.

Ensuite, si tu as besoin de filtrer ces événements, passe par des query params (par exemple ?status=accepted)

Édité par viki53

Mes tutos — Développeur JS (front principalement) — Consultant qualité, ergonomie et UX

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte