Вопрос: Как сделать JSON API клиент с типизированным ответом (generic helper)?

Go Middle Без компании
Вопрос: Как сделать JSON API клиент с типизированным ответом (generic helper)?
Ответы
```go func GetJSON[T any](ctx context.Context, client *http.Client, url string) (T, error) { var zero T req, _ := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) resp, err := client.Do(req) if err != nil { return zero, err } defer resp.Body.Close() if resp.StatusCode/100 != 2 { b, _ := io.ReadAll(resp.Body) return zero, fmt.Errorf("bad status %d: %s", resp.StatusCode, string(b)) } var out T if err := json.NewDecoder(resp.Body).Decode(&out); err != nil { return zero, err } return out, nil } ``` **Как это работает:** generics позволяют сделать типизированный helper без отражения (`reflect`).