Ce blog montre comment ModeMapper peut aider à automatiser le processus de paping DTO aux entités sur l'API Spring Boot, à l'aide d'exemples de sources. La seconde partie explique également comment utiliser Auth0 pour protéger et autoriser l'API Spring Boot résultante.
DTO représente un objet de transfert de données et est un modèle de conception qui a eu l'idée de réduire le nombre d'appels lorsque vous travaillez sur une interface distante. Comme le définit Martin Fowler dans blog, la principale raison d'utiliser des objets de transfert de données est de combiner plusieurs appels distants en un seul lot. est.
Par exemple, disons que vous communiquez avec une API RESTful qui expose des données de compte bancaire. Dans ce cas, au lieu d'émettre plusieurs demandes pour vérifier les transactions de compte actuelles et à jour, la banque peut publier un point de terminaison qui renvoie un DTO pour tout résumer. Cette interface à grain grossier peut grandement contribuer à améliorer les performances, car l'une des opérations les plus coûteuses pour les applications distantes est le temps d'aller-retour entre le client et le serveur.
Un autre avantage de l'utilisation de DTO avec des API RESTful écrites en Java (et Spring Boot) est utile lors du masquage des détails d'implémentation pour les objets de domaine (également appelés entités). La publication d'une entité via un point de terminaison est un problème de sécurité si vous ne faites pas attention aux propriétés que vous modifiez via quelles opérations.
À titre d'exemple, imaginez une API Java qui expose les détails de l'utilisateur et permet aux utilisateurs de se mettre à jour via deux points de terminaison. Le premier point de terminaison traite la demande GET et renvoie les données utilisateur. Le deuxième point de terminaison accepte alors la demande PUT pour mettre à jour ces détails. Si cette application n'utilise pas DTO, toutes les propriétés de l'utilisateur seront exposées sur le premier point de terminaison (par exemple, mot de passe) et le deuxième point de terminaison sélectionnera soigneusement les propriétés à accepter lors de la mise à jour de l'utilisateur. Doit (par exemple, tout le monde ne peut pas mettre à jour le rôle d'un utilisateur). Pour surmonter cette situation, le DTO aide à exposer uniquement à quoi sert le premier point de terminaison et à limiter ce que le deuxième point de terminaison accepte. Cette propriété permet de maintenir l'intégrité des données dans l'application.
Dans cet article, nous utiliserons le DTO pour gérer cette situation. Comme nous le verrons plus tard, ce modèle de conception introduit quelques classes supplémentaires dans votre application, mais avec une sécurité améliorée.
La suite de ce blog est expliquée à l'URL suivante. Mapper automatiquement DTO à l'entité avec l'API Spring Boot
Auth0 est un fournisseur appelé IDaaS (Identity as a Service) qui fournit des services d'authentification / d'autorisation pour les applications Web, les appareils mobiles, les API, etc. dans le cloud. Nous proposons une solution recommandée pour ceux qui souhaitent intégrer l'authentification, l'autorisation et la sécurité des utilisateurs dans les applications Web d'entreprise, les API, les applications mobiles natives, etc., mais elle est difficile à mettre en œuvre.
Auth0 publie des exemples de programmes pour divers frameworks de plate-forme sur Github, y compris les exemples de programmes utilisés dans ce didacticiel. En plus de l'API Spring Boot introduite cette fois, nous avons publié des sources pour de nombreux frameworks, alors pourquoi ne pas l'essayer? Dépôt Github --Auth0
Le service Auth0 peut être évalué gratuitement (essai gratuit: 22 jours) sans contrat. Pour l'essai gratuit, accédez à la page d'accueil Auth0 et <A HREF = "https://auth0.com" en haut à droite de l'écran. / signup? utm_campaign = qiita_auth0_aspnet_core & utm_source = qiita "> <img width =" 123 "alt =" Capture d'écran 2017-09-07 21.59.09.png "src =" https: //qiita-image-store.s3.amazonaws. Vous pouvez vous inscrire à un essai en cliquant sur com / 0/189613 / c0ffbce4-d802-6fdd-ea2a-aa4a7ccd775b.png "> . Vous pouvez vous inscrire en utilisant votre compte Gitgub, Google ou Microsoft pour vous inscrire en tant qu'utilisateur, alors pourquoi ne pas l'essayer?
Recommended Posts