How to properly handle JSON POST request in Go? Problems with decoding
Hello everyone! I just started learning Go and am writing a simple REST API. I encountered a problem when handling a JSON POST request. My code seems logical, but the server always returns empty data or an error.
Here is my handler code:
```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 struct:
No answers yet.
Log in to leave an answer
Blogs