Maison > développement back-end > Golang > le corps du texte

Comment créer une API RESTful et mettre en œuvre des contrôles de santé à l'aide de Golang ?

WBOY
Libérer: 2024-06-05 12:33:58
original
825 Les gens l'ont consulté

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.

如何使用 Golang 构建 RESTful API 并实现健康检查?

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
Copier après la connexion

2 Définissez le modèle de données

type User struct {
    ID       int    `json:"id"`
    Username string `json:"username"`
    Password string `json:"password"`
}
Copier après la connexion

3. Définissez la route

func main() {
    router := mux.NewRouter()
    router.HandleFunc("/users", getUsers).Methods("GET")
    // ... 更多路由
    log.Fatal(http.ListenAndServe(":8080", router))
}
Copier après la connexion

4.

func getUsers(w http.ResponseWriter, r *http.Request) {
    users := []User{
        {ID: 1, Username: "user1", Password: "password1"},
        // ... 更多用户
    }

    json.NewEncoder(w).Encode(users)
}
Copier après la connexion

implémentation Health Check

1 Définir le point de terminaison du contrôle de santé

router.HandleFunc("/healthz", healthz).Methods("GET")
Copier après la connexion

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"))
    }
}
Copier après la connexion

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 :

  • Obtenez la liste des utilisateurs via la requête HTTP GET /users /users 获取用户列表
  • 通过 HTTP GET 请求 /healthz
  • Vérifiez l'état de santé de l'API via la requête HTTP GET /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)
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal