本教學將向您展示如何使用 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 * – 在為應用程式產生模型的模板中使用。如果您的列名稱採用駝峰式大小寫,這非常有用。
我在 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"
當您執行命令時,您的輸出將類似於:
請注意,Monstarillo 會列印出每個表格名稱及其運行物件。您也許可以使用此資訊來解決命令中的錯誤。
查看您產生的程式碼
接下來,您可以透過開啟您在所選 IDE 中選擇的輸出目錄來查看程式碼。
接下來,您需要修改產生的程式碼中的 application.properties 檔案以更新資料庫連線資訊。該檔案可以在 src/main/resources/application.properties
找到在 IntelliJ 中,我將在 IDE 中開啟 PersistApi 類別並運行它。
我的新 API 正在運行,我可以測試它。我將使用郵差。我可以透過 http://localhost:8080/album
存取相簿控制器您也可以造訪 http://localhost:8080/swagger-ui/index.html 查看產生的程式碼的 OpenAPI 定義。
注意 src/java/com.monstarillo.persist_api
中產生的單元測試請在評論中告訴我你的想法
以上是使用 Java 和 Spring Boot 為 Postgres 資料庫產生 REST API的詳細內容。更多資訊請關注PHP中文網其他相關文章!