Comment retourner plusieurs niveaux de détails efficacement
Imaginez que vous gérez un "dossier" client sur un système central. Et pour autant de niveau de détails du dossier à récupérer, autant de requêtes à lui envoyer. Le détail qui tue: le système central vous facture à la requête.
Pour faire des applis frontales au système central, vous devez faire une API java (statefull autorisé) qui sera utilisée dans des cas d'utilisations très différents, c a d qui peuvent nécessiter un niveau de détail différent. Quelle approche d'api proposeriez vous ?
Je réfléchis de mon côté et poste en commentaire.
Pour faire des applis frontales au système central, vous devez faire une API java (statefull autorisé) qui sera utilisée dans des cas d'utilisations très différents, c a d qui peuvent nécessiter un niveau de détail différent. Quelle approche d'api proposeriez vous ?
Je réfléchis de mon côté et poste en commentaire.
Commentaires
Par exemple, une de ses fonctions est "ouvrir dossier" qui nous met dans le contexte de ce dossier et nous permet de récupérer le détail Foo, le détail Bar par 2 services distincts.
Voilà pour la précision.
Ensuite une proposition.
Proposition 1 : 1 service qui retourne un résultat plus ou moins riche - donc en fait différents résultats. En paramère, le niveau de détail demandé. Avec cache des données par niveau du dossier en cours, au cas où l'api est appelée plusieurs fois dans le cas d'utilisation.
==> Bof !! pas très beau une fonction qui retourne toujours le même id d'objet mais avec plus ou moins de contenu ??? Du terreau à NPE ?? Sauf à faire supporter un lazy loading au résultat... Le contrat manque de robustesse.
Proposition 2: coller au système central = 3 services pour 3 niveaux de détail. A l'avantage de responsabiliser l'appelant, et le contrat est robuste.