Comment traiter correctement une requête POST JSON en Go ?
Bonjour à tous ! Je viens de commencer à apprendre Go et j'écris un simple serveur d'API REST. Je suis confronté à un problème de traitement du JSON dans les requêtes POST.
J'ai une structure User :
```go
type User struct {
Name string
Age int
}
```
Et un handler :
```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)
}
```
Quand j'envoie une requête POST via curl :
```
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","age":30}' http://localhost:8080/user
```
J'obtiens un objet vide : `User: {Name: Age:0}`. Qu'est-ce que je fais de travers ? Pourquoi les champs ne sont-ils pas remplis ? J'ai vérifié que le corps de la requête arrive — si j'affiche r.Body sous forme de chaîne,
No answers yet.
Connectez-vous pour laisser une réponse