使用 Golang 建立 RESTful API 並實作健康檢查:建立 RESTful API:建立新項目,定義資料模型,定義路由,實作處理程序。實現健康檢查:定義健康檢查端點,實現健康檢查處理程序。本範例展示如何建立傳回使用者清單的 API 並實作健康檢查端點:透過 GET /users 取得使用者清單。透過 GET /healthz 檢查 API 健康狀況。
如何使用Golang 建立RESTful API 並實作健康檢查
介紹
RESTful API 作為一種現代應用程式通訊標準,越來越受到開發者們的青睞。 Golang 憑藉其高效能和並發性,非常適合建立 RESTful API。同時,實現健康檢查對於確保 API 正常運作至關重要。本文將指導你使用 Golang 建立一個 RESTful API 並實現健康檢查。
建置RESTful API
1. 建立新專案
go mod init rest-api
2. 定義資料模型
type User struct { ID int `json:"id"` Username string `json:"username"` Password string `json:"password"` }
3. 定義路由
func main() { router := mux.NewRouter() router.HandleFunc("/users", getUsers).Methods("GET") // ... 更多路由 log.Fatal(http.ListenAndServe(":8080", router)) }
#4. 實作處理程序
func getUsers(w http.ResponseWriter, r *http.Request) { users := []User{ {ID: 1, Username: "user1", Password: "password1"}, // ... 更多用户 } json.NewEncoder(w).Encode(users) }
實作健康檢查
1. 定義健康檢查端點
router.HandleFunc("/healthz", healthz).Methods("GET")
#2. 實作健康檢查處理程序
func healthz(w http.ResponseWriter, r *http.Request) { // TODO: 检查数据库连接性、缓存可用性等指标 if healthy { w.WriteHeader(http.StatusOK) w.Write([]byte("OK")) } else { w.WriteHeader(http.StatusServiceUnavailable) w.Write([]byte("ERROR")) } }
實戰案例
本例展示如何使用Golang 建立RESTful API(傳回使用者清單)並實作健康檢查端點:
/users
取得使用者清單/healthz
檢查API 健康狀況## 完整程式碼:
package main import ( "encoding/json" "net/http" "github.com/gorilla/mux" ) type User struct { ID int `json:"id"` Username string `json:"username"` Password string `json:"password"` } func getUsers(w http.ResponseWriter, r *http.Request) { users := []User{ {ID: 1, Username: "user1", Password: "password1"}, {ID: 2, Username: "user2", Password: "password2"}, } json.NewEncoder(w).Encode(users) } func healthz(w http.ResponseWriter, r *http.Request) { // TODO: 检查数据库连接性、缓存可用性等指标 if healthy { w.WriteHeader(http.StatusOK) w.Write([]byte("OK")) } else { w.WriteHeader(http.StatusServiceUnavailable) w.Write([]byte("ERROR")) } } func main() { router := mux.NewRouter() router.HandleFunc("/users", getUsers).Methods("GET") router.HandleFunc("/healthz", healthz).Methods("GET") http.ListenAndServe(":8080", router) }
以上是如何使用 Golang 建立 RESTful API 並實現健康檢查?的詳細內容。更多資訊請關注PHP中文網其他相關文章!