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.

Commentaires

le doj a dit…
J'ai oublié de préciser une choses importante : on a une préférence pour une API orientée service et session, qui colle à la réalité du système central. Comprenez: une notion de contexte en cours, sur lequel on agit via des fonctions avec des paramètres et qui fournit des résultats et/ou agit sur le contexte en cours.

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.

Posts les plus consultés de ce blog

COMMENT FAIRE un tableau scrollable avec entêtes fixes en html/css sans js

premier podcast, merci les CastCodeurs - et merci Android

Prez Grails dans les Tranchées au Jug Nantes