2016-03-01 5 views
0

Je développe une application Android qui communique avec un backend et plusieurs fois je me trouve à la croisée des chemins pour décider si chaque décision doit être prise par le backend ou le frontend.Lignes directrices pour ce qui doit être fait dans backend vs front-end d'une application mobile?

J'ai conçu la structure, la gestion de base de données, etc sur le backend, c'est évident. Cependant, quand il s'agit de contrôle d'accès, les lignes deviennent un peu floues pour moi. Prenez ce qui suit comme un exemple:

Element A requires that User B have permission X to view certain details

Element A requires that User B have permission Y to view ALL details

Maintenant, à l'extrémité avant, je peux voir les autorisations, mais il est beaucoup plus compliqué de les traiter que dans le back-end, mais juste Essayer de faire l'opération en envoyant la requête au backend et en réagissant à sa réponse serait plus de travail pour le backend.

En termes de meilleures pratiques et d'efficacité, que ferions-nous ici?

Si quelqu'un a de bonnes ressources pour les meilleures pratiques en travaillant avec un dos/front-end et comment distribuer la manipulation des opérations, ce serait incroyablement utile .... merci!

Répondre

0

Chaque contrôle devrait être en backend, car ils peuvent être modifiés à tout moment. Et aussi si vous codez ces choses du côté client, d'abord vous exposer la logique métier et à chaque changement sur ces paramètres ou contrôles vous devez republier l'application (dans le cas de l'application mobile)

0

Vraiment dépend de ce que vous êtes Faire. Vous pouvez fournir des catégories de permissions dans vos services reposants afin que votre backend puisse faire le gros du travail. Les 3 choses que vous devez garder à l'esprit est: Nous ne voulons pas que l'interface utilisateur attende le backend. Nous ne voulons pas que l'interface utilisateur soit lente à cause de travailler dur sur le thread principal. Les objets sécurisés ne doivent pas être exposés dans les demandes.

Je préfère faire le plus possible de lourdes charges à l'arrière et fournir une api reposante et propre en utilisant retrofit. précharger les données quand je peux et manipuler l'interface utilisateur de manière asynchrone en utilisant des espaces réservés.

J'espère que cela a répondu à votre question.

1

Les commandes de sécurité devaient toujours être sécurisées dans le backend. Si l'élément A requiert X pour pouvoir afficher Y, alors Y ne peut jamais aller au client s'il n'a pas besoin d'autorisations.

Ensuite, tout dépendra un peu de votre application et de l'expérience hors ligne dont vous avez besoin