J'essaie de déterminer la meilleure façon de mettre en œuvre la récupération des enregistrements détaillés en fonction de l'ID du maître.
Il est évident que vous devez configurer des contrôleurs d'API pour le maître et les détails.
Des solutions que j'ai envisagées :
- Demandez aux consommateurs de l'API d'utiliser OData pour obtenir tous les détails filtrés par un identifiant principal. Bien que je n'aie pas de problème avec cette solution, je me sens un peu mal de mettre cela sur le consommateur de l'API et je pense que c'est quelque chose qui devrait être géré en interne par l'API.
- Aller à l'encontre de la convention qui consiste à n'avoir que les méthodes Get/Put/Post/Delete et créer une action "GetMastersDetails" sur le contrôleur de détails et la rendre accessible via le routage. Bien que cela puisse certainement fonctionner, j'ai le sentiment que cela s'éloigne de l'objectif principal de l'API Web (dans une certaine mesure).
- Créez un troisième contrôleur nommé "MastersDetailsController" qui aurait un Get basé sur un ID de maître avec différents types de retour possibles :
- Ce qui renverrait une liste d'ID de détails qui serait ensuite utilisée pour appeler un Get sur le contrôleur de détails pour obtenir ces détails réels.
- Ce qui renverrait une liste d'objets de détail réels. Ce que je n'aime pas, c'est qu'un contrôleur renvoie un type différent de celui sur lequel il est basé.