Documentation ¶
Index ¶
- func AppendURLValues(v1, v2 url.Values) url.Values
- func CondenseUri(uri string) string
- func EndpointString(path, method string, generic bool) string
- func GetPathLeaf(s string) (string, error)
- func GetURLBody(absoluteUrl string) ([]byte, error)
- func GetURLPostBody(absoluteUrl string, bodyType string, reqBody io.Reader) ([]byte, error)
- func Join(elem ...string) string
- func JoinAbsolute(elem ...string) string
- func MatchGeneric(path1, path2 string) bool
- func ModifyPath(rawurl, newpath string) (string, error)
- func ParseURLTemplate(input string) (*url.URL, error)
- func SlugTextToUrl(s string) string
- func SlugUrlToText(s string) string
- func SplitPath(urlPath string, stripLeading, stripTrailing bool) []string
- func ToSlug(slug []byte) []byte
- func ToSlugLowerString(s string) string
- func URLAddQueryValues(inputURL string, qry map[string][]string) (*url.URL, error)
- func UnmarshalRailsQS(railsQuery string, i interface{}) error
- func UriHasScheme(uri string) bool
- func UriScheme(uri string) string
- func UrlValuesEncodeSorted(v url.Values, priorities []string) string
- func VarsToGeneric(input string) string
- type URLMore
- type URLValidator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppendURLValues ¶
AppendURLValues appends one url.Values to another url.Values.
func CondenseUri ¶
CondenseUri trims spaces and condenses slashes.
func EndpointString ¶
func GetPathLeaf ¶
func GetURLBody ¶
GetURLBody returns an HTTP response byte array body from a URL.
func GetURLPostBody ¶
GetURLPostBody returns a HTTP post body as a byte array from a URL, body type and an io.Reader.
func JoinAbsolute ¶
JoinAbsolute performs a path.Join() while preserving two slashes after the scheme.
func MatchGeneric ¶
func ModifyPath ¶
func ParseURLTemplate ¶
ParseURLTemplate exists to parse templates with variables that do not meet RFC specifications. For example: https://{customer}.example.com:{port}/v5 "invalid URL escape "%7B"" for `{` within a Hostname or "invalid port ":{port}" after host"
func SlugTextToUrl ¶
func SlugUrlToText ¶
func SplitPath ¶
SplitPath splits a URL path string with optional removal of leading and trailing slashes.
func ToSlug ¶
ToSlug creates a slug byte array from an input byte array. Slugs have words separated by a hyphen with no punctuation or spaces.
func ToSlugLowerString ¶
ToSlugLowerString creates a lower-cased slug string
func URLAddQueryValues ¶ added in v0.0.15
// URLAddQueryMap returns a URL as a string from a base URL and a // set of query parameters as a map[string]string{}
func URLAddQueryMapString(baseUrl string, queryParams map[string]string) (string, error) { if len(queryParams) < 1 { return baseUrl, nil } queryValues := map[string][]string{} for key, val := range queryParams { queryValues[key] = []string{val} } curUrl, err := URLAddQueryValues(baseUrl, queryValues) if err != nil { return baseUrl, err } return curUrl.String(), nil }
// BuildURL returns a URL string from a base URL and url.Values.
func BuildURL(baseUrl string, queryValues url.Values) string { qryString := queryValues.Encode() if len(qryString) > 0 { return baseUrl + "?" + qryString } return baseUrl }
// BuildURLQueryString to be deprecated in favor of URLAddQueryString
func BuildURLQueryString(baseUrl string, qry interface{}) string { v, _ := query.Values(qry) qryString := v.Encode() if len(qryString) > 0 { return baseUrl + "?" + qryString } return baseUrl }
func UnmarshalRailsQS ¶
UnmarshalRailsQS unmarshals a Rails query string to a Go struct.
func UriHasScheme ¶
UriHasScheme returns a boolean true or false if the string has a URI scheme.
func UriScheme ¶
UriScheme extracts the URI scheme from a string. It returns an empty string if none is encountered.
func UrlValuesEncodeSorted ¶
UrlValuesStringSorted returns and encoded string with sorting
func VarsToGeneric ¶
Types ¶
type URLMore ¶
UrlMore provides additional URL parsing and reconstruction capabilties above and beyond URL. Specifically it can parse out the port number and return URLs that strip off the target fragment as well as the query string.
func NewURLMore ¶
func NewURLMore() URLMore
type URLValidator ¶
func (*URLValidator) RequiredSchemesSorted ¶
func (uv *URLValidator) RequiredSchemesSorted() []string
func (*URLValidator) RequiredSchemesSortedString ¶
func (uv *URLValidator) RequiredSchemesSortedString() string
func (*URLValidator) SchemesToLower ¶
func (uv *URLValidator) SchemesToLower()
func (*URLValidator) ValidateURL ¶
func (*URLValidator) ValidateURLString ¶
func (uv *URLValidator) ValidateURLString(s string) (*url.URL, error)