iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Mobile Development

30天 使用chatGPT輔助學習APP完成接案任務委託系列 第 12

[Day12] API 與 CRUD 概念:後端開發的基本功

  • 分享至 

  • xImage
  •  

我們昨天成功開啟 Nest.js,並且看了一下萬年起始範例 「Hello World」。今天我們來介紹一下後端的一些基本概念。雖然說可以用 Cursor 幫我們寫程式,但是魔法師本人,也就是你本人。要有想法才會知道要請AI怎麼做。

不過老實說比起魔法師,我更覺得像只出一張嘴的慣老闆,用嘴巴寫程式。想不到吧,2024年我們也可以實現用嘴寫程式。但我們和現實中的老闆不太一樣,我們比較有腦。所以今天讓我們來了解一下基本概念吧。

API

我們先來聊聊 API (Application Programming Interface) 這個概念,因為這會幫助更好地理解接下來的內容。

你可以把 API 想像成應用程式之間溝通的「語言」或「橋樑」。打個比方,當你使用手機 APP(前端)來查詢某個商品時,其實手機 APP 是透過 API 跟後端伺服器進行對話。伺服器接收你的請求,處理資料,然後再通過 API 將結果返回給你的手機 APP,然後APP再將結果的資料渲染成畫面顯示在手機上面。這就是為什麼你能看到商品的詳細資料。

前端指的就是APP畫面,後端通常指的就是伺服器。前端和後端溝通的方式就是透過API。

[!example]
大家都有打電話訂餐廳的經驗吧,API 就像那部電話,它幫你把「我要點餐」的需求傳遞給餐廳(後端),而餐廳準備好餐點後,會通過電話告訴你餐點什麼時候會送到。這個過程中,你不需要知道餐廳內部是怎麼運作的,只需要專注於點餐(發送請求)和等餐(接收結果)即可。

為什麼要了解 API?

  • 前後端溝通的橋樑:前端的應用程式(像是你手機上的 APP 或網頁)需要透過 API 和後端伺服器溝通,才能取得資料、上傳資訊或執行操作。沒有 API,這些應用就無法運作。
  • 跨平台應用:不管是網頁、行動 APP、桌面應用程式,還是物聯網設備,它們都可以透過 API 和同一個後端系統溝通,這讓一個後端可以支援多個不同平台的前端應用程式。
  • API 是現代應用的基礎:如今,大多數現代應用程式無論是 Web 還是 Mobile,都是透過 API 來實現後端數據的存取。從社交平台到電子商務網站,再到物聯網裝置,API 是這些應用之間互相協作和溝通的標準工具。

[!tip]
在設計 API 的時候,其實我們可以專注在。 請求(request)回應(response) 是什麼就好了。

基本操作CRUD

CRUD 是一個在軟體開發中常見且核心的概念,它代表 Create(建立)、Read(讀取)、Update(更新)、Delete(刪除) 這四種基本操作。每當你開發一個應用程式或服務時,這四個動作通常是對資料進行處理的基礎。你可以把它想像成應用程式跟資料庫「互動」的方式。

有很多工程師都會說,工作這麼久其實都在CRUD而已,可見得這有多基本功。

CRUD 類型

1. Create(建立)

當你有新資料需要儲存到資料庫時,比如說用戶註冊、上傳一篇新文章、添加一個新產品等,你就會用到「Create」的操作。程式會接收到這些資料,然後送進資料庫存起來。

如果你有一個商品管理系統,當你輸入一個新商品名稱並點擊「新增」,這就是一個「Create」操作。

[!example]
請求一個商品物件。

  {  "name": "新商品",
  "price": 100,
  "description": "這是一個新商品的描述"
  }

2. Read(讀取)

讀取就是從資料庫裡拿出資料來顯示給用戶。例如,當你進入一個網站看到產品列表時,這就是「Read」。程式會從資料庫中提取資料,然後顯示在頁面上。

進入 Amazon 查找商品時,看到的產品資訊就是程式從資料庫中「讀取」並展示給你的。

3. Update(更新)

有時候資料會變動,例如修改你的個人資料、更新商品價格,這就是「Update」操作。你修改的資料會被程式寫入資料庫,以取代舊有的資料。

你可能會想修改自己在網購平台上的送貨地址,這就是典型的「Update」操作。

4. Delete(刪除)

最後是刪除操作,顧名思義,當某些資料不再需要時,你可以將它從資料庫中移除。

如果你想刪除一條不再需要的評論、文章或是刪除一個商品,這就是「Delete」操作。

Http方法

HTTP 方法 是用來指定客戶端(通常是瀏覽器或應用程式)如何與伺服器進行溝通的一種指令。在網路上,HTTP(HyperText Transfer Protocol)是最常用來傳輸資料的協定,而 HTTP 方法就是定義了不同的請求類型,讓伺服器知道客戶端想要做什麼事情。

常見的 HTTP 方法

1. GET

GET 是最常用的 HTTP 方法,用來從伺服器取得資料。當你在瀏覽器中輸入一個網址或點擊連結時,其實就是發出了一個 GET 請求。

  • 用途:讀取資料,不會對伺服器上的資料進行修改。
  • 範例:查詢所有商品列表或查看單個商品的詳細資料。

2. POST

POST 用來向伺服器發送資料,通常用來創建新資源。例如,提交表單、上傳檔案或新增資料到資料庫。

  • 用途:創建新資料或資源。
  • 範例:新增一個商品到資料庫。

3. PUT

PUT 用來更新資源,通常是完全取代現有資源的內容。如果資源不存在,伺服器有時會創建一個新的資源。

  • 用途:更新或取代現有資源。
  • 範例:更新一個商品的完整資訊。

4. PATCH

PATCH 也是用來更新資源,但不同於 PUT,它只更新部分內容,不會取代整個資源。

  • 用途:部分更新資源。
  • 範例:只更新商品的價格,而不改變其他屬性。

5. DELETE

DELETE 用來刪除伺服器上的資源。當你想要移除資料時,就會使用這個方法。

  • 用途:刪除資源。
  • 範例:刪除一個商品。

CRUD 與 HTTP

HTTP 方法CRUD 操作通常會相輔相成,在設計 RESTful API 時,這兩者的結合能夠讓 API 的設計更加直觀易懂。每個 CRUD 操作(Create、Read、Update、Delete)對應不同的 HTTP 方法,以實現對伺服器上資源的創建、讀取、更新和刪除。

HTTP 方法與 CRUD 操作的對應關係

CRUD 操作 HTTP 方法 說明 範例
Create POST 用於創建新資源,將資料提交到伺服器。 新增一個商品。POST /products
Read GET 用於讀取或檢索資料,不對資料進行更改。 獲取商品列表或單一商品的詳細資料。GET /productsGET /products/:id
Update PUT/PATCH 用於更新現有資源。PUT 是完全更新,PATCH 是部分更新。 修改商品的資訊。PUT /products/:idPATCH /products/:id
Delete DELETE 用於刪除資源。 刪除一個商品。DELETE /products/:id

[!summary]

  • POST 對應 Create:用來新增資源。
  • GET 對應 Read:用來檢索和查詢資料。
  • PUTPATCH 對應 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


上一篇
[Day11] 開始後端 Nest.js
系列文
30天 使用chatGPT輔助學習APP完成接案任務委託12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言