首頁 > Java > java教程 > 使用 Java 和 Spring Boot 為 Postgres 資料庫產生 REST API

使用 Java 和 Spring Boot 為 Postgres 資料庫產生 REST API

Linda Hamilton
發布: 2025-01-06 22:21:40
原創
438 人瀏覽過

本教學將向您展示如何使用 monstarillo 為 Postgres 資料庫產生 Java API。該 API 將使用 Spring Boot 和 Springdoc 來記錄它。該 API 將對您執行它的表執行 CRUD 操作。也將為 API 產生單元測試。
要學習本教程,您將需要:

monstarillo 已安裝。
Postgres 資料庫 – 我將使用 chinhook 資料庫。在 Docker 中設定 Chinhook 範例 Postgres 資料庫
Java已安裝
Java IDE – 我將使用 InteliJ
吉特

第一步是取得我們將用於產生 API 的範本。為此,請克隆儲存庫共用範本。我們將使用的模板位於 java-api 資料夾中。
告訴 Monstarillo 將產生的程式碼放在哪裡
接下來,您需要決定將產生的程式碼放置在哪裡。我將透過 Docker 運行 Monstarillo。我將把目錄 ~/shared-volume 暴露給運行 Monstarillo 的 docker 映像。透過克隆儲存庫建立的共用範本資料夾位於 ~/shared-volume 資料夾中。我將在 ~/shared-volume/code-gen-output 中產生程式碼。 Monstarillo 在產生程式碼時會建立 code-gen-output 資料夾。

修改templates.json檔
Monstarillo 使用 json 檔案來告訴它要運行哪些模板、如何運行它們以及生成的檔案的名稱以及將它們放在哪裡。我們將修改檔案 java-api/postgres/templates.json。 templates.json 檔案中的 templates 陣列告訴 Monstarillo 要運行哪些模板、如何命名它創建的檔案以及將它們放在哪裡。 templates.json 檔案中的標籤陣列定義了模板和/或 templates.json 中使用的一些「標籤」。例如,PackagePath 在 templates.json 檔案中多次使用。 PackagePath 在許多範本中使用,標籤允許我們定義一次。要運行模板,您需要修改標籤數組中的 TemplateRoot 和 OutputPath 標籤。

*TemplateRoot *– 範本根需要指向您複製的儲存庫中的 java-api 資料夾。
*OutputPath *– 輸出路徑需要指向您希望 Monstarillo 放置其產生的檔案的資料夾。如果該資料夾尚不存在,Monstarillo 將建立該資料夾。
*PackageBase * – 用於在類別中設定套件
*ArtifactId * – 在產生的 POM.xml
中使用 *GroupId * – 在產生的 POM.xml
中使用 *ApplicationClassName * – 用作產生的應用程式的主類別名稱
*ModelPropertySurrondString * – 在為應用程式產生模型的模板中使用。如果您的列名稱採用駝峰式大小寫,這非常有用。

Generate a REST API Using Java and Spring Boot for your Postgres database
我在 docker 中運行 Monstarillo,所以我將標籤設定為:

{
   "tagName": "TemplateRoot",
   "value": "/usr/local/monstarillo/shared-templates/java-api"
},
{
   "tagName": "OutputPath",
   "value": "/usr/local/monstarillo/code-gen-output/java-01"
}
登入後複製

如果我在本地運行 Monstarillo,我會將標籤設為:

{
   "tagName": "TemplateRoot",
   "value": "/home/patrick/code/patrick-templates/java-api"
},
{
   "tagName": "OutputPath",
   "value": "/home/patrick/code-gen-output/java-01"
}
登入後複製

運行 Monstarillo 生成程式碼
接下來我們將建立命令來運行 Monstarillo 來為我們產生程式碼。我們需要告訴 Monstarillo 我們正在使用 Postgres 資料庫並提供連接資訊。我們還需要透過傳遞我們之前設定的 templates.json 檔案的位置來告訴 Monstarillo 要運行哪些模板。

要在 docker 中執行 Monstarillo,我們的命令將類似於:

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
登入後複製

如果我在本地運行 Monstarillo,我的命令將是:

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"
登入後複製

當您執行命令時,您的輸出將類似於:

Generate a REST API Using Java and Spring Boot for your Postgres database
請注意,Monstarillo 會列印出每個表格名稱及其運行物件。您也許可以使用此資訊來解決命令中的錯誤。

查看您產生的程式碼
接下來,您可以透過開啟您在所選 IDE 中選擇的輸出目錄來查看程式碼。

Generate a REST API Using Java and Spring Boot for your Postgres database

接下來,您需要修改產生的程式碼中的 application.properties 檔案以更新資料庫連線資訊。該檔案可以在 src/main/resources/application.properties

找到

Generate a REST API Using Java and Spring Boot for your Postgres database

在 IntelliJ 中,我將在 IDE 中開啟 PersistApi 類別並運行它。

Generate a REST API Using Java and Spring Boot for your Postgres database

我的新 API 正在運行,我可以測試它。我將使用郵差。我可以透過 http://localhost:8080/album

存取相簿控制器

Generate a REST API Using Java and Spring Boot for your Postgres database

您也可以造訪 http://localhost:8080/swagger-ui/index.html 查看產生的程式碼的 OpenAPI 定義。

Generate a REST API Using Java and Spring Boot for your Postgres database

注意 src/java/com.monstarillo.persist_api

中產生的單元測試

Generate a REST API Using Java and Spring Boot for your Postgres database

請在評論中告訴我你的想法

以上是使用 Java 和 Spring Boot 為 Postgres 資料庫產生 REST API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板