code: func (api *API) DNSRecords(zoneID string, rr DNSRecord) ([]DNSRecord, error) {
  	// Construct a query string
  	v := url.Values{}
  	// Request as many records as possible per page - API max is 50
  	v.Set("per_page", "50")
  	if rr.Name != "" {
  		v.Set("name", rr.Name)
  	}
  	if rr.Type != "" {
  		v.Set("type", rr.Type)
  	}
  	if rr.Content != "" {
  		v.Set("content", rr.Content)
  	}
  
  	var query string
  	var records []DNSRecord
  	page := 1
  
  	// Loop over makeRequest until what we've fetched all records
  	for {
  		v.Set("page", strconv.Itoa(page))
  		query = "?" + v.Encode()
  		uri := "/zones/" + zoneID + "/dns_records" + query
  		res, err := api.makeRequest("GET", uri, nil)
  		if err != nil {
  			return []DNSRecord{}, errors.Wrap(err, errMakeRequestError)
  		}
  		var r DNSListResponse
  		err = json.Unmarshal(res, &r)
  		if err != nil {
  			return []DNSRecord{}, errors.Wrap(err, errUnmarshalError)
  		}
  		records = append(records, r.Result...)
  		if r.ResultInfo.Page >= r.ResultInfo.TotalPages {
  			break
  		}
  		// Loop around and fetch the next page
  		page++
  	}
  	return records, nil
  }
docs: // DNSRecords returns a slice of DNS records for the given zone identifier.
  //
  // This takes a DNSRecord to allow filtering of the results returned.
  //
  // API reference: https://api.cloudflare.com/#dns-records-for-a-zone-list-dns-records