code: func addURLQueryOptions(path string, options interface{}) (string, error) {
  	opt := reflect.ValueOf(options)
  
  	// options is a pointer
  	// return if the value of the pointer is nil,
  	if opt.Kind() == reflect.Ptr && opt.IsNil() {
  		return path, nil
  	}
  
  	// append the options to the URL
  	u, err := url.Parse(path)
  	if err != nil {
  		return path, err
  	}
  
  	qs, err := query.Values(options)
  	if err != nil {
  		return path, err
  	}
  
  	uqs := u.Query()
  	for k, _ := range qs {
  		uqs.Set(k, qs.Get(k))
  	}
  	u.RawQuery = uqs.Encode()
  
  	return u.String(), nil
  }
docs: // addOptions adds the parameters in opt as URL query parameters to s.  opt
  // must be a struct whose fields may contain "url" tags.