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 設計開始講起囉~