Dieser Blog zeigt, wie ModeMapper mithilfe von Beispielquellen dazu beitragen kann, den DTO-Papierprozess für Entitäten in der Spring Boot-API zu automatisieren. In der zweiten Hälfte wird erläutert, wie Auth0 zum Schutz und zur Autorisierung der resultierenden Spring Boot-API verwendet wird.
DTO stellt ein Datenübertragungsobjekt dar und ist ein Entwurfsmuster, das auf die Idee kam, die Anzahl der Anrufe bei der Arbeit an einer Remote-Schnittstelle zu reduzieren. Wie Martin Fowler in Blog definiert, besteht der Hauptgrund für die Verwendung eines Datenübertragungsobjekts darin, mehrere Remote-Aufrufe in einem Stapel zu kombinieren. ist.
Angenommen, Sie kommunizieren mit einer RESTful-API, die Bankkontodaten verfügbar macht. In diesem Fall kann die Bank anstelle mehrerer Anfragen zur Überprüfung der aktuellen und aktuellen Kontotransaktionen einen Endpunkt veröffentlichen, der ein DTO zurückgibt, um alles zusammenzufassen. Diese grobkörnige Schnittstelle kann erheblich zur Verbesserung der Leistung beitragen, da eine der teuersten Vorgänge für Remoteanwendungen die Umlaufzeit zwischen Client und Server ist.
Ein weiterer Vorteil der Verwendung von DTO mit in Java (und Spring Boot) geschriebenen RESTful-APIs ist nützlich, wenn Implementierungsdetails für Domänenobjekte (auch als Entitäten bezeichnet) ausgeblendet werden. Das Veröffentlichen einer Entität über einen Endpunkt ist ein Sicherheitsproblem, wenn Sie nicht genau wissen, welche Eigenschaften Sie durch welche Vorgänge ändern.
Stellen Sie sich als Beispiel eine Java-API vor, die Benutzerdetails verfügbar macht und es Benutzern ermöglicht, über zwei Endpunkte zu aktualisieren. Der erste Endpunkt verarbeitet die GET-Anforderung und gibt Benutzerdaten zurück. Der zweite Endpunkt akzeptiert dann die PUT-Anforderung zum Aktualisieren dieser Details. Wenn diese Anwendung kein DTO verwendet, werden alle Benutzereigenschaften auf dem ersten Endpunkt (z. B. Kennwort) verfügbar gemacht, und der zweite Endpunkt wählt sorgfältig aus, welche Eigenschaften beim Aktualisieren des Benutzers akzeptiert werden sollen. Muss (zB kann nicht jeder die Rolle eines Benutzers aktualisieren). Um diese Situation zu überwinden, hilft das DTO dabei, nur das anzugeben, wofür der erste Endpunkt bestimmt ist, und zu begrenzen, was der zweite Endpunkt akzeptiert. Diese Eigenschaft hilft bei der Aufrechterhaltung der Datenintegrität innerhalb der Anwendung.
In diesem Artikel verwenden wir das DTO, um diese Situation zu behandeln. Wie wir später sehen werden, führt dieses Entwurfsmuster einige weitere Klassen in Ihre Anwendung ein, jedoch mit verbesserter Sicherheit.
Die Fortsetzung dieses Blogs wird unter der folgenden URL erklärt. DTO automatisch einer Entität mit Spring Boot API zuordnen
Auth0 ist ein sogenannter IDaaS-Anbieter (Identity as a Service), der Authentifizierungs- / Autorisierungsdienste für Webanwendungen, mobile Geräte, APIs usw. in der Cloud bereitstellt. Wir bieten eine empfohlene Lösung für diejenigen, die Benutzerauthentifizierung, -autorisierung und -sicherheit in Unternehmenswebanwendungen, APIs, native mobile Apps usw. integrieren möchten. Die Implementierung ist jedoch schwierig.
Auth0 veröffentlicht Beispielprogramme für verschiedene Plattform-Frameworks auf Github, einschließlich der in diesem Lernprogramm verwendeten Beispielprogramme. Zusätzlich zu der diesmal eingeführten Spring Boot-API haben wir Quellen für viele Frameworks veröffentlicht. Probieren Sie es also aus. Github Repository --Auth0
Der Auth0-Service kann ohne Vertrag kostenlos evaluiert werden (kostenlose Testversion: 22 Tage). Rufen Sie für die kostenlose Testversion die Auth0-Homepage und <A HREF = "https://auth0.com" oben rechts auf dem Bildschirm auf. / signup? utm_campaign = qiita_auth0_aspnet_core & utm_source = qiita "> <img width =" 123 "alt =" Screenshot 2017-09-07 21.59.09.png "src =" https: //qiita-image-store.s3.amazonaws. Sie können sich für eine Testversion registrieren, indem Sie auf com / 0/189613 / c0ffbce4-d802-6fdd-ea2a-aa4a7ccd775b.png "> klicken. Sie können sich mit Ihrem Gitgub-, Google- oder Microsoft-Konto anmelden, um sich als Benutzer zu registrieren. Probieren Sie es also aus.
Recommended Posts