Como enviar uma string JSON em uma requisição POST em Go?
Olá a todos! Recentemente comecei a estudar Go e estou escrevendo um pequeno cliente REST para trabalhar com uma API externa. Preciso enviar uma requisição POST com o corpo no formato JSON, mas não consigo entender como fazer isso corretamente.
Tenho uma estrutura de dados que serializo em JSON e quero enviá-la para o servidor. Aqui está o que tentei:
```go
package main
import (
"fmt"
"net/http"
"strings"
)
type User struct {
Name string `json:"name"`
Email string `json:"email"`
}
func main() {
user := User{Name: "Ivan", Email: "ivan@example.com"}
// Como envio isso como JSON em uma requisição POST?
resp, err := http.Post("https://api.example.com/users", "application/json", strings.NewReader(user))
if err != nil {
fmt.Println(err)
}
fmt.Println(resp)
}
```
Entendo que `strings.NewReader(user)` não funciona, pois espera-se uma string, não uma struct. Mas como converter corretamente a struct em JSON e enviá-la? É necessário usar