Utilisez Golang pour créer une API RESTful et mettre en œuvre des contrôles de santé : Créez une API RESTful : créez un nouveau projet, définissez le modèle de données, définissez des itinéraires et implémentez des gestionnaires. Implémenter des vérifications de l'état : définissez les points de terminaison de la vérification de l'état et implémentez les gestionnaires de vérification de l'état. Cet exemple montre comment créer une API qui renvoie une liste d'utilisateurs et implémente le point de terminaison de vérification de l'état : Obtenez la liste des utilisateurs via GET /users. Vérifiez l’état de l’API via GET /healthz.
Comment utiliser Golang pour créer une API RESTful et mettre en œuvre un bilan de santé
Introduction
L'API RESTful, en tant que norme de communication d'application moderne, est de plus en plus favorisée par les développeurs. Golang est idéal pour créer des API RESTful en raison de ses hautes performances et de sa concurrence. Dans le même temps, la mise en œuvre de contrôles de santé est essentielle pour garantir le bon fonctionnement de l’API. Cet article vous guidera pour créer une API RESTful et mettre en œuvre des vérifications de l'état à l'aide de Golang.
Créez une API RESTful
1. Créez un nouveau projet
go mod init rest-api
2 Définissez le modèle de données
type User struct { ID int `json:"id"` Username string `json:"username"` Password string `json:"password"` }
3. Définissez la route
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) }
implémentation Health Check
1 Définir le point de terminaison du contrôle de santé
router.HandleFunc("/healthz", healthz).Methods("GET")
2 Implémenter le gestionnaire de contrôle de santé
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")) } }
Cas pratique
Cet exemple montre comment utiliser Golang pour créer un. API RESTful (renvoyant une liste d'utilisateurs) et implémentez le point de terminaison de vérification de l'état :
/users
/users
获取用户列表/healthz
/healthz
Code complet :
🎜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) }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!