[JAVA] Ordnen Sie DTO automatisch Entitäten mit der Spring Boot-API zu

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.

スクリーンショット 2019-03-15 11.03.31.png

Was ist DTO?

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.

DTO und Spring Boot API

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

Integrierte Authentifizierungsplattform Auth0

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.

Veröffentlichte Beispielquellen für verschiedene Plattformen auf Github

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

Um Auth0 tatsächlich zu verwenden

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

Ordnen Sie DTO automatisch Entitäten mit der Spring Boot-API zu
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
Versuchen Sie, die Anmeldefunktion mit Spring Boot zu implementieren
Versuchen Sie, die Migration mit Spring Boot Flyway zu automatisieren
[Java] Artikel zum Hinzufügen einer Validierung mit Spring Boot 2.3.1.
Ich wollte Spring Boot in einem Multiprojekt gradle
Erstellen Sie einen Web-API-Server mit Spring Boot
[Einführung in Spring Boot] Authentifizierungsfunktion mit Spring Security
Mit Spring Boot herunterladen
Einstellungen für die Verbindung zu MySQL mit Spring Boot + Spring JDBC
Hallo Welt (REST API) mit Apache Camel + Spring Boot 2
[Spring Boot] Benutzerinformationen mit Rest API abrufen (Anfänger)
Implementieren Sie eine einfache Rest-API mit Spring Security mit Spring Boot 2.0
Passen Sie die Antwort auf REST-API-Fehler mit Spring Boot an (Teil 2).
Führen Sie swagger-ui in die in Spring Boot implementierte REST-API ein
Booten nach Umgebung mit Spring Boot of Maven
Passen Sie die Antwort auf REST-API-Fehler mit Spring Boot an (Teil 1).
Versuch, SSR Vue.js mit Spring Boot und GraalJS zu verwenden
Versuchen Sie Spring Boot von 0 bis 100.
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Implementieren Sie GraphQL mit Spring Boot
Beginnen Sie mit Spring Boot
Hallo Welt mit Spring Boot!
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Einführung in Spring Boot ~ ~ DI ~
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
Einführung in Spring Boot ② ~ AOP ~
Spring Boot beginnend mit Docker
Hallo Welt mit Spring Boot
Setzen Sie Cookies mit Spring Boot
Verwenden Sie Spring JDBC mit Spring Boot
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
API mit Spring + Vue.js verknüpfen
Einführung in Spring Boot Teil 1
Erstellen Sie mit Spring Boot einen Mikrodienst
Mail mit Spring Boot verschicken
Geben Sie das integrierte Tomcat-Zugriffsprotokoll mit Spring Boot an die Standardausgabe aus
Behandeln Sie die Java 8-Datums- und Uhrzeit-API mit Thymeleaf mit Spring Boot
Implementieren Sie die REST-API mit Spring Boot und JPA (Application Layer).
Implementieren Sie die REST-API mit Spring Boot und JPA (Infrastructure Layer).
Schneiden Sie SQL in die Eigenschaftendatei mit jdbcTemplate von Spring Boot aus
Erstellen wir eine einfache API mit EC2 + RDS + Spring Boot ①
Bis INSERT und SELECT für Postgres mit Spring Boot und Thymianblatt
Aufrufen und Verwenden der API in Java (Spring Boot)
Versuchen Sie, die Springcode-Such-API mit Spring Boot aufzurufen
Stellen Sie mit spring boot + spring jpa eine Verbindung zur Datenbank her und führen Sie die CRUD-Operation durch
Fluss bis zur Ausgabe von Tabellendaten, die mit Spring Boot angezeigt werden sollen
Implementieren Sie die REST-API mit Spring Boot und JPA (Domain Layer Edition).
Ich habe versucht, mit Swagger mit Spring Boot zu beginnen
Implementieren Sie eine einfache Rest-API mit Spring Security & JWT mit Spring Boot 2.0
Lassen Sie uns herausfinden, wie Sie mit Request Body mit der REST-API von Spring Boot empfangen können
Verwenden Sie die Standardauthentifizierung mit Spring Boot
Feder mit Kotorin --4 REST API Design
Einführung in Spring Boot x Offene API ~ Offene API, erstellt mit Generationslückenmuster ~
gRPC auf Spring Boot mit grpc-spring-boot-Starter
Erstellen Sie eine App mit Spring Boot 2