package fetch import ( "bytes" "encoding/json" "io" "net/url" "strings" ) func WithJSONBody(v any) io.Reader { buf := &bytes.Buffer{} if err := json.NewEncoder(buf).Encode(v); err != nil { panic(err) } return buf } func WithURLEncodedBody(query map[string]string) io.Reader { v := &url.Values{} for key, value := range query { v.Set(key, value) } return strings.NewReader(v.Encode()) }