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.
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.
import ( "encoding/json" "fmt" "log" "net/http" "github.com/gorilla/mux" )
r := mux.NewRouter()
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"}) }
r.HandleFunc("/", indexHandler).Methods("GET") r.HandleFunc("/post", postHandler).Methods("POST")
http.ListenAndServe(":8080", r)
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!