iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
AI Engineering

Java × AI:30天打造智慧健康助理系列 第 5

讓 Spring Boot 跟我說 Hello

  • 分享至 

  • xImage
  •  

Day 5|讓 Spring Boot 跟我說 Hello

昨天的 Day 4 終於正式建立了 Spring Boot 專案,也成功讓專案跑起來。

但是目前的智慧健康助理其實還什麼都不會做 XD

所以今天要完成第一個真正可以操作的功能:

建立第一個 REST API,讓 Spring Boot 可以接收請求並回傳文字!

今天先不急著做 BMI,也先不碰 AI。

我們先從最經典的:

Hello World!

開始!


一、REST API 到底是什麼?

Day 3 有稍微提到 API,可以把它簡單理解成:

讓不同程式之間互相溝通的方法。

而今天要做的是 REST API

以我們的 Spring Boot 專案來說,可以先把流程想成:

使用者
   ↓
發送 HTTP Request
   ↓
Spring Boot
   ↓
Controller
   ↓
Java 處理
   ↓
回傳 Response
   ↓
使用者看到結果

例如等等建立:

/hello

當使用者進入這個網址時,Spring Boot 收到請求後,就會找到負責 /hello 的 Java 程式,最後回傳:

Hello! I'm your health assistant!

這就是今天要完成的第一個 REST API。


二、先認識 Controller

要讓 Spring Boot 知道:

「有人進入 /hello 的時候,要執行哪一段 Java 程式?」

就需要建立 Controller

Controller 可以想成使用者與程式之間的其中一個入口。

使用者送出 Request 之後,Controller 會負責接收請求,再決定要執行什麼程式。

所以今天先在 Java 專案中建立一個新的 Class:

HelloController.java

目前的專案結構大概會變成:

health-assistant
│
├── src
│   └── main
│       ├── java
│       │   └── ...
│       │       ├── HealthAssistantApplication.java
│       │       └── HelloController.java
│       │
│       └── resources
│           └── application.properties
│
└── pom.xml

三、建立第一個 Controller

接下來開始寫今天第一段程式:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello! I'm your health assistant!";
    }
}

看起來只有幾行,但是裡面出現了一些以前寫普通 Java 程式時比較少看到的東西。

所以接下來一個一個看。


四、@RestController 是什麼?

首先是:

@RestController

這是一個 Annotation(註解)

它可以告訴 Spring Boot:

「這個 Class 是用來處理 Web Request 的 Controller。」

所以當 Spring Boot 啟動時,就會知道 HelloController 是其中一個負責接收 Request 的地方。

如果沒有加上 @RestController,Spring Boot 就不會把這個 Class 當成 REST Controller 使用。


五、@GetMapping("/hello") 又是什麼?

下一個重要的地方是:

@GetMapping("/hello")

@GetMapping 用來處理 HTTP GET Request

而括號裡面的:

/hello

就是我們設定的路徑。

也就是說,當使用者發送:

GET /hello

Spring Boot 就會找到下面這個 Method:

public String hello() {
    return "Hello! I'm your health assistant!";
}

然後執行它。


六、第一個 API 的完整流程

現在可以把整個流程重新整理一次。

當我在瀏覽器輸入:

http://localhost:8080/hello

首先瀏覽器會向 Spring Boot 發出 Request。

接著:

瀏覽器
   ↓
GET /hello
   ↓
Spring Boot
   ↓
HelloController
   ↓
@GetMapping("/hello")
   ↓
hello()
   ↓
return "Hello! I'm your health assistant!"
   ↓
瀏覽器顯示結果

最後應該會看到:

Hello! I'm your health assistant!

🎉 第一個 REST API 完成!


七、localhost:8080 又是什麼?

剛剛輸入的網址是:

http://localhost:8080/hello

可以把它拆成幾個部分:

http://localhost:8080/hello
       └───────┘ └──┘ └────┘
          主機    Port   Path

localhost

localhost 代表目前正在使用的這台電腦。

也就是說,現在這個 Spring Boot 專案還不是放在真正的網路伺服器上,而是在自己的電腦執行。

8080

Spring Boot 預設使用的 Port 是:

8080

所以當 Spring Boot 成功啟動之後,可以透過:

localhost:8080

找到正在本機執行的 Spring Boot Application。

/hello

最後的:

/hello

就是剛才透過 @GetMapping 設定的路徑。


八、再做一個真正跟健康助理有關的 API

既然 /hello 已經成功了,我想再稍微往這次的主題靠近一點。

所以再新增一個:

@GetMapping("/health")
public String health() {
    return "Welcome to your smart health assistant!";
}

完整的 Controller 就會變成:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello! I'm your health assistant!";
    }

    @GetMapping("/health")
    public String health() {
        return "Welcome to your smart health assistant!";
    }
}

重新啟動程式後,在瀏覽器輸入:

http://localhost:8080/health

就應該會看到:

Welcome to your smart health assistant!

雖然目前還只會回傳固定文字,但至少我們的健康助理終於第一次「開口說話」了!


九、今天學到的三個重要東西

今天第一次真正接觸 Spring Boot 的 REST API,也認識了幾個很重要的概念。

1. Controller

負責接收使用者送進來的 Request。

2. @RestController

告訴 Spring Boot:

這個 Class 是一個 REST Controller。

3. @GetMapping

設定某個網址路徑要由哪一個 Method 處理。

例如:

@GetMapping("/hello")

代表收到:

GET /hello

時,就執行對應的 Method。

目前可以先簡單記成:

使用者輸入網址
      ↓
@GetMapping 找到對應路徑
      ↓
Controller 執行 Method
      ↓
return 結果
      ↓
使用者看到結果

十、離真正的健康助理還有多遠?

目前我們已經可以做到:

  • ✅ Spring Boot 正常啟動
  • ✅ 建立 Controller
  • ✅ 接收 GET Request
  • ✅ 建立 /hello
  • ✅ 建立 /health
  • ✅ 回傳 String

但是現在還有一個很明顯的問題。

我們回傳的內容全部都是:

return "固定的文字";

不管使用者是誰,輸入什麼東西,結果都完全一樣。

真正的智慧健康助理當然不能只有這樣。

接下來就需要讓使用者可以:

把資料傳進 Java,再讓 Java 根據資料產生不同的結果。

這樣我們才有辦法慢慢做到 BMI、健康紀錄,甚至後面的 AI 功能。


Day 5 小結

今天終於完成了這個專案的第一個 REST API!

從昨天只有一個空空的 Spring Boot 專案,到今天已經可以透過瀏覽器向 Java 發送 Request,並收到 Response。

今天最大的收穫就是理解:

Spring Boot 可以透過 Controller 接收 Request,再由 Java 處理並回傳 Response。

現在我們的智慧健康助理雖然只會說:

Hello! I'm your health assistant!

但至少它終於會說話了

下一步,就是讓它不要只會回答固定的內容!


上一篇
建立我的第一個 Spring Boot 專案
下一篇
讓 Spring Boot 接收使用者輸入
系列文
Java × AI:30天打造智慧健康助理7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言