Avatar ·

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

مرحبًا بالجميع! لقد بدأت للتو في تعلم Go وأكتب خادم REST API بسيط. واجهت مشكلة في معالجة JSON في طلبات POST. لدي هيكل User: ```go type User struct { Name string Age int } ``` ومعالج: ```go func createUser(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 } fmt.Fprintf(w, "User: %+v", user) } ``` عندما أرسل طلب POST عبر curl: ``` curl -X POST -H "Content-Type: application/json" -d '{"name":"John","age":30}' http://localhost:8080/user ``` أحصل على كائن فارغ: `User: {Name: Age:0}`. ما الخطأ الذي أفعله؟ لماذا لا يتم ملء الحقول؟ لقد تحققت من أن جسم الطلب يصل — إذا قمت بطباعة r.Body كسلسلة،