Maison  >  Article  >  développement back-end  >  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
WBOYoriginal
2024-05-31 19:48:001006parcourir

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"
)

2. Créez un routeur

r := mux.NewRouter()

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"})
}

4 Enregistrez la route

r.HandleFunc("/", indexHandler).Methods("GET")
r.HandleFunc("/post", postHandler).Methods("POST")

5. Démarrez le serveur

http.ListenAndServe(":8080", r)

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)
    }
}

Enregistrez ensuite l'itinéraire :

r.HandleFunc("/users", userHandler)

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

curl -X GET localhost:8080/users

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!

Déclaration:
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