2017-01-12 1 views
0

J'ai une question très générale. Par exemple, j'ai une table d'employé qui inclut le nom, l'adresse, l'âge, le genre, le service etc .. Quand un utilisateur veut voir l'information globale d'employé, je n'ai pas besoin d'extraire des colonnes entières de DB. Je veux d'abord montrer l'information globale des employés en regroupant les noms des employés par département. Et puis, un utilisateur peut sélectionner un employé particulier s'il/elle a plus d'intérêt. Pour mettre en œuvre cela, quelle approche sera meilleure.population de données et la manipulation dans frontend contre backend

1) Appliquer deux API qui produiront deux résultats différents de données en appliquant différentes requêtes. Par conséquent, si je prends cette approche, même si je dois appeler deux API différentes, cela semble efficace.

2) Appliquer une API qui produira un résultat de données, y compris les employés des colonnes entières pertinentes, même si l'information globale des employés n'a pas besoin de renseignements sur les employés ensemble de détail. Une fois que je reçois ces données, je peux reformater les informations sur les employés en manipulant les données déjà extraites du côté frontal en fonction des différents besoins.

Normalement, l'approche que les développeurs prennent entre 1) et 2)? Je pense que 1) a du sens, mais l'API sera trop spécialisée, pas généralisée. Est-ce une manière souhaitable de manipuler les données obtenues du côté back-end (RESTful) dans un côté frontal (Angular 2)? Quelle approche est préférée entre la création d'un nombre relativement plus important d'API spécialisées ou la manipulation des données dans la partie frontale une fois après avoir obtenu des données complètes? S'il y a des critères à adopter, sur quelle base dois-je considérer? Est-ce que c'est correct? Si quelqu'un a une idée à ce sujet, pourriez-vous donner un guide?

Répondre

1

C'est une discussion très intéressante. Si vous avez besoin d'une application très optimisée, vous devrez utiliser la première option. En outre, si vous avez une colonne sur l'employé qui ne peut être accessible que par un utilisateur privilégié, vous pouvez imaginer qu'une manipulation côté client n'empêchera pas un pirate malveillant de le voir. Dans ce cas, vous devez également implémenter la première option.

L'inconvénient est que, à un moment donné, vous pourriez avoir trop d'API qui font des choses très similaires ce qui rend confus et improductif. A propos de la deuxième option, comme vous avez indiqué avoir des API généralisées est une bonne chose, afin d'accélérer le processus de développement et avoir un ensemble d'API plus propre, vous pouvez gaspiller peu de trafic Internet en retour.

Vous devez équilibrer vos besoins.

  • Est-ce l'optimisation des ressources? Comme la vitesse en termes de requêtes de base de données et de requêtes internet.
  • Ou est-ce le temps de développement? Avez-vous assez de temps pour mettre en œuvre toutes ces choses et optimisations?
+0

Je vois, je vous remercie beaucoup pour votre commentaire. –