我們昨天成功開啟 Nest.js,並且看了一下萬年起始範例 「Hello World」。今天我們來介紹一下後端的一些基本概念。雖然說可以用 Cursor 幫我們寫程式,但是魔法師本人,也就是你本人。要有想法才會知道要請AI怎麼做。
不過老實說比起魔法師,我更覺得像只出一張嘴的慣老闆,用嘴巴寫程式。想不到吧,2024年我們也可以實現用嘴寫程式。但我們和現實中的老闆不太一樣,我們比較有腦。所以今天讓我們來了解一下基本概念吧。
我們先來聊聊 API (Application Programming Interface) 這個概念,因為這會幫助更好地理解接下來的內容。
你可以把 API 想像成應用程式之間溝通的「語言」或「橋樑」。打個比方,當你使用手機 APP(前端)來查詢某個商品時,其實手機 APP 是透過 API 跟後端伺服器進行對話。伺服器接收你的請求,處理資料,然後再通過 API 將結果返回給你的手機 APP,然後APP再將結果的資料渲染成畫面顯示在手機上面。這就是為什麼你能看到商品的詳細資料。
前端指的就是APP畫面,後端通常指的就是伺服器。前端和後端溝通的方式就是透過API。
[!example]
大家都有打電話訂餐廳的經驗吧,API 就像那部電話,它幫你把「我要點餐」的需求傳遞給餐廳(後端),而餐廳準備好餐點後,會通過電話告訴你餐點什麼時候會送到。這個過程中,你不需要知道餐廳內部是怎麼運作的,只需要專注於點餐(發送請求)和等餐(接收結果)即可。
[!tip]
在設計 API 的時候,其實我們可以專注在。 請求(request) 和 回應(response) 是什麼就好了。
CRUD 是一個在軟體開發中常見且核心的概念,它代表 Create(建立)、Read(讀取)、Update(更新)、Delete(刪除) 這四種基本操作。每當你開發一個應用程式或服務時,這四個動作通常是對資料進行處理的基礎。你可以把它想像成應用程式跟資料庫「互動」的方式。
有很多工程師都會說,工作這麼久其實都在CRUD而已,可見得這有多基本功。
當你有新資料需要儲存到資料庫時,比如說用戶註冊、上傳一篇新文章、添加一個新產品等,你就會用到「Create」的操作。程式會接收到這些資料,然後送進資料庫存起來。
如果你有一個商品管理系統,當你輸入一個新商品名稱並點擊「新增」,這就是一個「Create」操作。
[!example]
請求一個商品物件。{ "name": "新商品", "price": 100, "description": "這是一個新商品的描述" }
讀取就是從資料庫裡拿出資料來顯示給用戶。例如,當你進入一個網站看到產品列表時,這就是「Read」。程式會從資料庫中提取資料,然後顯示在頁面上。
進入 Amazon 查找商品時,看到的產品資訊就是程式從資料庫中「讀取」並展示給你的。
有時候資料會變動,例如修改你的個人資料、更新商品價格,這就是「Update」操作。你修改的資料會被程式寫入資料庫,以取代舊有的資料。
你可能會想修改自己在網購平台上的送貨地址,這就是典型的「Update」操作。
最後是刪除操作,顧名思義,當某些資料不再需要時,你可以將它從資料庫中移除。
如果你想刪除一條不再需要的評論、文章或是刪除一個商品,這就是「Delete」操作。
HTTP 方法 是用來指定客戶端(通常是瀏覽器或應用程式)如何與伺服器進行溝通的一種指令。在網路上,HTTP(HyperText Transfer Protocol)是最常用來傳輸資料的協定,而 HTTP 方法就是定義了不同的請求類型,讓伺服器知道客戶端想要做什麼事情。
GET 是最常用的 HTTP 方法,用來從伺服器取得資料。當你在瀏覽器中輸入一個網址或點擊連結時,其實就是發出了一個 GET 請求。
POST 用來向伺服器發送資料,通常用來創建新資源。例如,提交表單、上傳檔案或新增資料到資料庫。
PUT 用來更新資源,通常是完全取代現有資源的內容。如果資源不存在,伺服器有時會創建一個新的資源。
PATCH 也是用來更新資源,但不同於 PUT,它只更新部分內容,不會取代整個資源。
DELETE 用來刪除伺服器上的資源。當你想要移除資料時,就會使用這個方法。
HTTP 方法 和 CRUD 操作通常會相輔相成,在設計 RESTful API 時,這兩者的結合能夠讓 API 的設計更加直觀易懂。每個 CRUD 操作(Create、Read、Update、Delete)對應不同的 HTTP 方法,以實現對伺服器上資源的創建、讀取、更新和刪除。
CRUD 操作 | HTTP 方法 | 說明 | 範例 |
---|---|---|---|
Create | POST | 用於創建新資源,將資料提交到伺服器。 | 新增一個商品。POST /products |
Read | GET | 用於讀取或檢索資料,不對資料進行更改。 | 獲取商品列表或單一商品的詳細資料。GET /products 或 GET /products/:id |
Update | PUT/PATCH | 用於更新現有資源。PUT 是完全更新,PATCH 是部分更新。 | 修改商品的資訊。PUT /products/:id 或 PATCH /products/:id |
Delete | DELETE | 用於刪除資源。 | 刪除一個商品。DELETE /products/:id |
[!summary]
- POST 對應 Create:用來新增資源。
- GET 對應 Read:用來檢索和查詢資料。
- PUT 或 PATCH 對應 Update:用來更新現有資源。
- DELETE 對應 Delete:用來刪除資源。
今天介紹了API 還有基本的CRUD,以及HTTP方法對應 CRUD的關係。我們明天會使用 nest.js 來開始實作簡單的 CRUD API,以及如果檢測是否成功完成API的方法。
但由於 CRUD是將資料寫入資料庫,我們先教大家怎麼安裝使用資料庫。
怕大家會不知道為什麼要知道 API,CRUD。我幫大家Remind一下。前面我們做了註冊畫面。但如果需要真的可以註冊會員變且登入我們就會需要使用nest.js做 BE來處理數據。
又到了我們最後的工商時間啦~~~。Tom有在經營 Pocast,目前比較偏向職場類的閒聊,未來Podcast預計更新與程式軟體開發相關的主題。有興趣的朋友follow一下。
可以透過以下平台收聽: Apple podcast Spotify KKBOX
Linking Tree