code: func (client Client) newHTTPRequest(passedRequest requestOptions) (*Request, error) {
  	request, err := client.router.CreateRequest(
  		passedRequest.RequestName,
  		rata.Params(passedRequest.URIParams),
  		passedRequest.Body,
  	)
  
  	if err != nil {
  		return nil, err
  	}
  
  	if passedRequest.Query != nil {
  		request.URL.RawQuery = passedRequest.Query.Encode()
  	}
  
  	if passedRequest.Header != nil {
  		request.Header = passedRequest.Header
  	} else {
  		request.Header = http.Header{}
  	}
  
  	request.Header.Set("Accept", "application/json")
  	request.Header.Set("Content-Type", "application/json")
  	request.Header.Set("Connection", "close")
  	request.Header.Set("User-Agent", client.userAgent)
  
  	return &Request{Request: request, body: passedRequest.Body}, nil
  }
docs: // newHTTPRequest returns a constructed HTTP.Request with some defaults.
  // Defaults are applied when Request fields are not filled in.