Artikel ini menunjukkan langkah-langkah untuk membina API RESTful menggunakan Golang, termasuk mengimport pakej yang diperlukan, mencipta penghala, menentukan pengendali, mendaftarkan laluan dan memulakan pelayan. Selain itu, arahan disediakan untuk mengendalikan keadaan ralat, seperti mengembalikan mesej ralat dan kod status HTTP yang betul.
Membina API RESTful di Golang adalah mudah dan cekap Artikel ini akan membawa anda langkah demi langkah untuk memahami cara membuat API dan mengendalikan senario ralat biasa.
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)
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) } }
Atas ialah kandungan terperinci Bagaimana untuk membina API RESTful dan mengendalikan ralat menggunakan Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!