Avatar ·

كيفية معالجة طلب JSON POST بشكل صحيح في Go؟ مشاكل فك الترميز

مرحبًا بالجميع! لقد بدأت للتو في تعلم Go وأكتب واجهة REST API بسيطة. واجهت مشكلة عند معالجة طلب JSON POST. يبدو الكود الخاص بي منطقيًا، لكن الخادم دائمًا ما يعيد بيانات فارغة أو خطأ. إليك كود المعالج الخاص بي: ```go func CreateUserHandler(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) return } var user User err := json.NewDecoder(r.Body).Decode(&user) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } defer r.Body.Close() fmt.Printf("User received: %+v\n", user) w.WriteHeader(http.StatusCreated) json.NewEncoder(w).Encode(user) } ``` هيكل User: ```go type User struct { Name string `json:"name"` Email string `json:"email"` Age int `json:"age"` } ``` أرسل الطلب عبر curl: ```bash curl -X POST http://loca