Heim >Java >javaLernprogramm >Generieren Sie eine REST-API mit Java und Spring Boot für Ihre Postgres-Datenbank
Dieses Tutorial zeigt Ihnen, wie Sie mit monstarillo eine Java-API für Ihre Postgres-Datenbank generieren können. Die API verwendet Spring Boot und Springdoc, um dies zu dokumentieren. Die API führt CRUD-Operationen für die Tabellen aus, für die Sie sie ausführen. Für die API werden auch Unit-Tests generiert.
Um diesem Tutorial folgen zu können, benötigen Sie:
monstarilloinstalliert.
Eine Postgres-Datenbank – ich werde die Chinhook-Datenbank verwenden. Richten Sie die Chinhook-Beispiel-Postgres-Datenbank in Docker ein
Java installiert
Eine Java-IDE – ich werde InteliJ verwenden
Git
Der erste Schritt besteht darin, die Vorlagen zu erhalten, die wir zum Generieren unserer API verwenden werden. Klonen Sie dazu die Repo-Shared-Templates. Die Vorlagen, die wir verwenden werden, befinden sich im Ordner java-api.
Teilen Sie Monstarillo mit, wo der generierte Code abgelegt werden soll
Als nächstes müssen Sie entscheiden, wo der generierte Code platziert werden soll. Ich werde Monstarillo über Docker ausführen. Ich werde das Verzeichnis ~/shared-volume dem Docker-Image zugänglich machen, auf dem Monstarillo läuft. Der durch das Klonen des Repositorys erstellte Ordner „shared-templates“ befindet sich im Ordner „~/shared-volume“. Ich werde Code in ~/shared-volume/code-gen-output generieren. Monstarillo erstellt den Ordner „code-gen-output“, wenn der Code generiert wird.
Ändern Sie die Datei templates.json
Monstarillo verwendet eine JSON-Datei, um ihm mitzuteilen, welche Vorlagen ausgeführt werden sollen, wie sie ausgeführt werden sollen und wie die von ihm generierten Dateien benannt und wo sie abgelegt werden sollen. Wir werden die Datei java-api/postgres/templates.json ändern. Das Templates-Array in der Datei templates.json teilt Monstarillo mit, welche Vorlagen ausgeführt werden sollen, wie die erstellten Dateien benannt werden sollen und wo sie abgelegt werden sollen. Das Tags-Array in der Datei templates.json definiert einige „Tags“, die in Vorlagen und/oder templates.json verwendet werden. Beispielsweise wird der PackagePath mehrfach in der Datei templates.json verwendet. Der PackagePath wird in einer Reihe von Vorlagen verwendet, das Tag ermöglicht es uns, ihn einmal zu definieren. Um die Vorlagen auszuführen, müssen Sie die Tags TemplateRoot und OutputPath im Tags-Array ändern.
*TemplateRoot *– Der Vorlagenstamm muss auf den Java-API-Ordner im Repository verweisen, den Sie geklont haben.
*OutputPath *– Der Ausgabepfad muss auf den Ordner verweisen, in dem Monstarillo die von ihm generierten Dateien ablegen soll. Monstarillo erstellt den Ordner, wenn er noch nicht vorhanden ist.
*PackageBase *– Wird verwendet, um das Paket in Klassen festzulegen
*ArtifactId *– Wird in der generierten POM.xml
verwendet
*GroupId *– Wird in der generierten POM.xml
verwendet
*ApplicationClassName *– Wird als Name der Hauptklasse der generierten Anwendung verwendet
*ModelPropertySurrondString *– Wird in der Vorlage verwendet, die die Modelle für die Anwendung generiert. Dies ist nützlich, wenn Ihre Spaltennamen in Großbuchstaben geschrieben sind.
Ich verwende Monstarillo im Docker, also setze ich die Tags auf:
{ "tagName": "TemplateRoot", "value": "/usr/local/monstarillo/shared-templates/java-api" }, { "tagName": "OutputPath", "value": "/usr/local/monstarillo/code-gen-output/java-01" }
Wenn ich Monstarillo lokal ausführen würde, würde ich die Tags auf Folgendes setzen:
{ "tagName": "TemplateRoot", "value": "/home/patrick/code/patrick-templates/java-api" }, { "tagName": "OutputPath", "value": "/home/patrick/code-gen-output/java-01" }
Führen Sie Monstarillo aus, um den Code zu generieren
Als Nächstes erstellen wir den Befehl zum Ausführen von Monstarillo, um den Code für uns zu generieren. Wir müssen Monstarillo mitteilen, dass wir eine Postgres-Datenbank verwenden und die Verbindungsinformationen bereitstellen. Wir müssen Monstarillo auch mitteilen, welche Vorlagen ausgeführt werden sollen, indem wir den Speicherort der zuvor eingerichteten Datei templates.json übergeben.
Um Monstarillo in Docker auszuführen, sieht unser Befehl etwa so aus:
docker run --volume=/mnt/c/code:/usr/local/monstarillo \ --network=host \ monstarillo/monstarillo:latest postgres \ --t /usr/local/monstarillo/shared-templates/java-api/postgres/templates.json \ --u postgres \ --p <Your Database Password> \ --db "chinhook-db" \ --host "localhost" \ --schema "public" In this command I am mounting /mnt/c/code to the docker image as /usr/local/monstarillo that is running monstarillo. My shared-templates folder is at /mnt/c/code/shared-templates and will be generating code to /mnt/c/code/code-gen-output/java-01
Wenn ich Monstarillo lokal ausführen würde, wäre mein Befehl:
monstarillo postgres \ --t /home/patrick/code/patricks-monstarillo-templates/java-api/templates.json \ --u postgres \ --p <Your Database Password>\ --db "chinhook-db" \ --host "localhost" \ --schema "public"
Wenn Sie den Befehl ausführen, sieht Ihre Ausgabe etwa so aus:
Beachten Sie, dass Monstarillo jeden Tabellennamen ausgibt und gegen ihn ausgeführt wird. Möglicherweise können Sie diese Informationen verwenden, um Fehler in Ihrem Befehl zu beheben.
Sehen Sie sich Ihren generierten Code an
Als Nächstes können Sie Ihren Code anzeigen, indem Sie das von Ihnen ausgewählte Ausgabeverzeichnis in der IDE Ihrer Wahl öffnen.
Als nächstes müssen Sie die Datei application.properties in Ihrem generierten Code ändern, um Ihre Datenbankverbindungsinformationen zu aktualisieren. Die Datei finden Sie unter src/main/resources/application.properties
In IntelliJ öffne ich die PersistApi-Klasse in der IDE und führe sie aus.
Meine neue API läuft und ich kann sie testen. Ich werde Postman verwenden. Ich kann unter http://localhost:8080/album
auf den Album-Controller zugreifenSie können auch zu http://localhost:8080/swagger-ui/index.html surfen, um die generierte OpenAPI-Definition für den generierten Code anzuzeigen.
Beachten Sie die Unit-Tests, die in src/java/com.monstarillo.persist_api generiert wurden
Lassen Sie mich wissen, was Sie in den Kommentaren denken
Das obige ist der detaillierte Inhalt vonGenerieren Sie eine REST-API mit Java und Spring Boot für Ihre Postgres-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!