Springboot - RestfulApi 起手教學 1
哈囉,各位好,這將是一整個系列的文章,主要內容是如何透過 Springboot 框架快速建立 Restful Api,所牽涉到的知識大部分是後端 Api+database 設計,最後利用 Swagger 框架建立 Api 文檔,在部署到 Heroku 上,完成一連串 Api 教學。
我們來實作一個專案,其專案有包含三個實體,分別是 Person、Order、Product。簡單來說,使用者可以下訂單,訂單上可以訂多個產品。大致上的流程就是這樣~起手教學簡單就好。但其實裡面內容也滿多的,若是新手的話,可能要多多去練習,以及具備查詢相關文檔的能力。
廢話不多說,開始吧!^^
建立專案
在建立專案之前,勢必要先開啟 IDE,對於開發 Java 而言,我唯一推薦 Intellij IDEA,它有社群版跟商業版,雖然商業版要錢,但是學生是可以免費申請喔,就算要錢,其實也很值得去買,真心推薦~
因此我會用 Intellij IDEA 的商業版去做示範。
第一步
選擇 Spring Initializr,這個可幫助我們快速建立 Springboot 框架的專案。簡單來說,我們可以看到 Default 那邊有 Service URL 可以選擇,可以點進去這個網址去看,它其實就是 web 形式的幫你快速建立 Springboot 的專案框架。
再來就是選擇好本機上的 JDK 環境即可。
第二步
接下來是建立專案的內部細節:
首先要先知道我們要建立的專案要採用 Maven 形式還是 Gradle 形式。簡單來說,兩者都是專案構建的工具,但其實它們的功能精妙之處,可能就要另外開一篇文章來解釋了。這邊就不去詳細介紹他們了。我個人目前開發都是採用 Maven 去做專案構建的,但其實兩者都滿多人再用的。以下就用 Maven 去做介紹。
-
Group
Group 可以把它想成是組織或是公司的名稱,例如
com.example
這個名稱,代表的是公司的名稱。但因為我們這個專案只純示範,因此我取名為kenny.home
,而你可以換成你想要的組織名稱。 -
Artifact
Artifact 可以把它想成是項目名稱,也就是你想要開發的專案名稱。而它的推薦命名方式為
實際項目名稱-模組名稱
。例如我取名為spring-rest-shop
代表我開發的是 spring 裡面的 rest 中的 shop 模組,可以看成由大而小的概念。 -
Type
選擇 Maven Project。
-
Language
可選擇 Java、Kotlin、Groovy。我們選擇 Java,有機會再發 Kotlin 的教學文章~
-
Java Version
選擇版本 8,目前最穩定的版本。
-
Version
採用預設即可。
-
Name
這個通常會跟 Artifact 名稱一樣。
-
Description
描述此專案是做什麼用的。可以參考我的描述~
-
Package
通常會將 Group 及 Artifact 結合再一起變成 Package name。
第三步
勾選 Dependency,簡單來說,就是在此次專案中,我們會用到那些 Library 的意思。我們需要勾選以下項目:
-
Developer Tools - Spring Boot DevTools
這個 dependency 主要可以幫助我們修改程式碼後,不需要重啟我們的專案,讓專案可以自動重啟。
-
Developer Tools - Lombok
這個可以幫助我們快速建立 Java class 常會需要的
建構子、Getter、Setter
,只要利用annotation
功能就可以達到,不需要撰寫多餘的程式碼。 -
Web - Spring Web Starter
因為我們這次的專案是做 Web 相關的,因此需要勾選此 dependency。才會有
Restful
等功能。 -
SQL - Spring Data JPA
這個套件簡單來說是一種
ORM(Object Relational Mapping)
套件,可以幫我們將 Java 的 Object 對應到我們資料庫的 table。在實務中,大多數都會去使用 ORM 套件。 -
SQL - PostgreSQL Driver
因為我們這次的專案要採用 PostgreSQL 資料庫,因此我們需要 PostgreSQL Driver 的套件,才能連接我們的資料庫。
勾選完之後取專案名稱,就完成囉。
第四步
產生出來的專案會長成這樣,其中我們熟悉的 Java 的 main 方法,就是啟動整個 Springboot 專案的源頭。通常沒問題的話,按下 Run 之後就是啟動 Web 專案囉~
總結
關於 Intellij IDEA 的操作,以及好用之處,之後有空我會再發幾篇文章特別去講解。真的很好用,加上有些指令如果熟記的話,對於開發 Java 其實是非常快速的。我個人是滿討厭 Eclipse 的,但是大部分學校教 Java 都是採用 Eclipse,讓我真的是有點囧…,在國外的比例上,其實 Intellij IDEA 使用比例上是很高的。真的用過就回不去了~
今天的文章就到這裡了,下篇文章從 database 設計開始講起囉~