и столкнулся с проблемой разбора ответов. В нем есть функция Do, которая записывает ответ в структуру переданную в аргументе v. Как это происходит? Структура должна релизовывать какой-то интерфейс? Спасибо
// Do sends an API request and returns the API response. The API response is
// JSON decoded and stored in the value pointed to by v, or returned as an
// error if an API error has occurred. If v implements the io.Writer
// interface, the raw response body will be written to v, without attempting to
// first decode it.
func (c *Client) Do(req *retryablehttp.Request, v interface{}) (*Response, error) {
resp, err := c.client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
response := newResponse(resp)
if v != nil {
if w, ok := v.(io.Writer); ok {
_, err = io.Copy(w, resp.Body)
} else {
err = json.NewDecoder(resp.Body).Decode(v)
}
}
return response, err
}
клиента к чему?
подойдет любая структура которая соотвествует вашему ответу
Обсуждают сегодня