Go | 套件實現 RESTful API
💬 簡介
在現代開發中,呼叫第三方 API 是常見需求。
若將 API 呼叫邏輯零散寫在主程式中,不僅難以維護,也不利於測試與重用。
本篇將實作一個簡單的 RESTful API 客戶端套件,示範如何模組化整合 HTTP 操作,建立清晰、可擴充的應用結構。
圖片來源:Gophers
📦 專案與套件結構
我們將設計一個套件 apiclient,統一封裝 API 呼叫邏輯:
目錄架構如下:
1 | /myapp/ |
apiclient.go:負責發送 GET 請求並解析結果types.go:定義 API 回傳資料的資料結構(struct)
範例將使用 JSONPlaceholder 公開 API 作為模擬資料來源。
📄 apiclient/types.go
1 | package apiclient |
- 使用
json標籤對應 API 回傳欄位。 - 後續將以此型別接收與解析 JSON 資料。
🔧 apiclient/apiclient.go
1 | package apiclient |
- 封裝
http.Client,集中管理逾時與錯誤處理。 - 提供
GetPostByID封裝 API 呼叫邏輯,讓主程式只需關心業務資料。
🚀 main.go:實際使用套件
1 | package main |
只要一行
apiclient.GetPostByID,即可取出資料並印出標題與內容。
🧪 模組化優勢與可擴充性
| 技術優點 | 說明 |
|---|---|
| 責任清晰 | API 呼叫邏輯與主程式分離 |
| 易於測試 | 可對 apiclient 套件撰寫獨立單元測試 |
| 支援擴充 | 未來可加上 POST/PUT/Delete 等功能 |
| 改善維護性 | API 變更僅需修改一處邏輯 |
| 可重用性 | 套件可跨專案使用 |
📝 套件化的好處在於「高內聚、低耦合」,後續若改連接其他 API,只需修改
apiclient而不影響主程式邏輯。
🎯 總結
藉由封裝 HTTP 操作邏輯為獨立套件,我們實現了一個簡潔、可讀的 API 客戶端範例:
- ✅ 使用清晰目錄與模組化設計
- ✅ 將資料結構與邏輯分離管理
- ✅ 提供乾淨明確的公開函式介面
未來你可以將此技術延伸應用於 GitHub API、Line Notify、Slack Webhook 等實際開發場景。
最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。
註:以上參考了
Go