J'ai un frontend AngularJS à mon application basée sur l'API. Il existe des services qui effectuent des appels d'API, tels que les suivants. Je veux comparer une variable de chacun de ces appels:La meilleure façon de comparer deux appels d'API dans angularJS?
Obtenir les données utilisateur:
this.getUserData = function() {
var apiCall = $http({
method: 'GET',
url: 'http://example.com/api/userdata',
headers: {
'Authorization': 'Bearer ' + localStorage.getItem('token'),
'Access-Control-Allow-Origin': 'Any'
}
});
return apiCall;
};
Obtenir les données de la page:
this.getPageData = function(slug){
var apiCall = $http.get('http://example.com/api/public/page?slug=' + slug, {
headers: { 'Authorization': 'Bearer ' + localStorage.getItem('token') }
}
)
return apiCall;
};
Dans mon contrôleur je voudrais comparer un var de chacun de ces appels, comme suit:
if (apiService.getUserData.likes.page_id == apiService.getPageData.page_id){ // do stuff }
Quelle est la manière la plus efficace de le faire, étant donné que les appels API peuvent prendre un moment .. Je ne dois pas faire un appel d'API chaque fois que je veux accéder à une variable de l'API puis-je? Gardez à l'esprit que ces appels d'API sont normalement effectués dans les contrôleurs DIFFERENT, de sorte que les résultats sont stockés dans des portées différentes. Fondamentalement, je suis confus si ce peu de logique devrait aller dans un contrôleur, dans le service lui-même, ou ailleurs. Tout conseil est apprécié. Merci.
Très agréable! Pour être clair, cela signifie que j'appelle chaque route de l'API plusieurs fois dans mon application - une fois pour obtenir les données d'API dont j'ai besoin pour le contrôleur, et encore chaque fois j'ai besoin de comparer les variables. Est-ce conseillé? – Leon
cela dépend de votre application. Si vous avez déjà besoin des données dans votre contrôleur, vous devez appeler getUserData et getPageData puis, une fois qu'elles reviennent, faites votre comparaison. Si vous avez juste besoin du vrai/faux de la comparaison, utilisez un service comme celui-ci. La troisième option est sur votre côté serveur, vous pouvez définir un indicateur sur les données utilisateur comme userData.hasLikedPage et vous n'avez pas à comparer sur l'interface utilisateur – Ero