iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0

上一篇認識了 API 和 Endpoint,知道前端發出的 Request 會送到 API 中對應的 Endpoint,再由後端進行處理。

例如:/tasks

可以先理解成這次的 Request 是跟「作業」有關。

但只知道 Request 要送到 /tasks 還不夠
因為我們可能是想查看作業、新增作業、修改作業,也可能是刪除作業。

那後端要怎麼知道我們到底想做什麼呢?

這時候就會用到 HTTP Method(HTTP 方法)。

HTTP Method 是什麼?

上一篇有提到,HTTP 是 Request 和 Response 在傳遞時所遵守的一套通訊規則。

而在一個 HTTP Request 裡,會使用 Method 來表示這次的請求想要進行什麼操作。

在 REST API 中,常見的 Method 有:

  • GET:取得資料
  • POST:新增資料
  • PUT:修改資料
  • DELETE:刪除資料

假設我們有一個 Endpoint:/tasks

如果今天發出:GET /tasks

可以把它拆成:GET → 想要取得資料 + /tasks → 要處理的是作業 =「我想取得作業資料。」

如果換成:POST /tasks

可以理解成:「我想新增一筆作業資料。」

所以即使都是 /tasks,使用不同的 HTTP Method,就可以表示不同的操作。

例如:
GET /tasks → 取得作業
POST /tasks → 新增作業
PUT /tasks/1 → 修改編號 1 的作業
DELETE /tasks/1 → 刪除編號 1 的作業

那後端怎麼知道要執行哪一段程式?

並不是後端看到 /tasks 這個名字後,自己猜出我們想做什麼。

而是我們在寫後端程式的時候,就會先設定好不同的 Method 要怎麼處理。

例如之後使用 Flask-RESTX 時,會看到類似這樣的程式:

@api.route('/tasks')
class TaskList(Resource):
    def get(self):
        # 處理 GET /tasks
        ...

    def post(self):
        # 處理 POST /tasks
        ...

當收到 GET /tasks 的 Request 時,Flask 就會找到對應的 get() 來處理。
如果收到的是 POST /tasks,則會找到對應的 post() 來處理。

可以先簡單整理成:

Endpoint:告訴後端 Request 要送到哪裡。
HTTP Method:表示這次 Request 想要進行什麼操作。

兩個搭配起來,後端就可以知道這次 Request 應該交給哪一段程式處理。

不過看到這裡可能又會有一個問題:

為什麼我們會用 GET 取得資料、用 POST 新增資料?API 的網址和操作又應該怎麼設計呢?

下一篇就來認識 REST,看看 REST API 到底是什麼。


上一篇
Day 4|API 到底是什麼?
下一篇
Day 6|REST API 是什麼?
系列文
從零開始的後端開發:用 Flask 實作 REST API,搞懂 API 與資料庫之間如何協作 共 15 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言