code: func getPages(body io.Reader) (paginationInfo, io.Reader, error) {
  	var buf bytes.Buffer
  	tee := io.TeeReader(body, &buf)
  
  	bodyBytes, err := ioutil.ReadAll(tee)
  	if err != nil {
  		return paginationInfo{}, nil, err
  	}
  
  	var pages linksResponse
  	json.Unmarshal(bodyBytes, &pages)
  	return pages.Links, bytes.NewReader(buf.Bytes()), nil
  }
docs: // getPages parses a response to get the pagination data without destroying
  // the reader we receive as "resp.Body"; this essentially copies resp.Body
  // and returns it so we can use it again.