Maison > développement back-end > Golang > Comment créer une API RESTful et gérer les erreurs à l'aide de Golang ?

Comment créer une API RESTful et gérer les erreurs à l'aide de Golang ?

WBOY
Libérer: 2024-05-31 19:48:00
original
1033 Les gens l'ont consulté

Cet article montre les étapes pour créer une API RESTful à l'aide de Golang, y compris l'importation des packages nécessaires, la création de routeurs, la définition de gestionnaires, l'enregistrement des routes et le démarrage du serveur. De plus, des instructions sont fournies pour gérer les conditions d'erreur, telles que le renvoi de messages d'erreur et la correction des codes d'état HTTP.

如何使用 Golang 构建 RESTful API 并处理错误?

Créez une API RESTful et gérez les erreurs à l'aide de Golang

Créer une API RESTful dans Golang est simple et efficace. Cet article vous guidera étape par étape pour comprendre comment créer une API et gérer les scénarios d'erreur courants.

1. Importez les packages nécessaires

import (
    "encoding/json"
    "fmt"
    "log"
    "net/http"

    "github.com/gorilla/mux"
)
Copier après la connexion

2. Créez un routeur

r := mux.NewRouter()
Copier après la connexion

3. Définissez le gestionnaire

func indexHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Hello, World!")
}

func postHandler(w http.ResponseWriter, r *http.Request) {
    var data map[string]interface{}
    if err := json.NewDecoder(r.Body).Decode(&data); err != nil {
        http.Error(w, "Invalid JSON", http.StatusBadRequest)
        return
    }

    log.Printf("Received data: %v", data)
    json.NewEncoder(w).Encode(map[string]interface{}{"status": "success"})
}
Copier après la connexion

4 Enregistrez la route

r.HandleFunc("/", indexHandler).Methods("GET")
r.HandleFunc("/post", postHandler).Methods("POST")
Copier après la connexion

5. Démarrez le serveur

http.ListenAndServe(":8080", r)
Copier après la connexion

Cas pratique

Créez une API simple pour stocker et récupérer. données utilisateur :

type User struct {
    Name  string `json:"name"`
    Email string `json:"email"`
}

func userHandler(w http.ResponseWriter, r *http.Request) {
    switch r.Method {
    case "GET":
        json.NewEncoder(w).Encode([]User{{Name: "John", Email: "john@example.com"}})
    case "POST":
        var user User
        if err := json.NewDecoder(r.Body).Decode(&user); err != nil {
            http.Error(w, "Invalid JSON", http.StatusBadRequest)
            return
        }
        fmt.Fprint(w, "User created:", user)
    default:
        http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
    }
}
Copier après la connexion

Enregistrez ensuite l'itinéraire :

r.HandleFunc("/users", userHandler)
Copier après la connexion

Vous pouvez maintenant facilement tester l'API en utilisant curl ou d'autres outils :

curl -X GET localhost:8080/users
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