commit | 934da1706275a38ef4d8647320f723db0c208595 | [log] [tgz] |
---|---|---|
author | Will Norris <will@willnorris.com> | Thu Dec 02 17:15:58 2021 |
committer | Will Norris <will@willnorris.com> | Thu Dec 02 17:15:58 2021 |
tree | a608e011f71aed0cabb954b540c87be1d4c1da7d | |
parent | b6e79f1232c697d589dde6da2dd13b4de75b8af9 [diff] |
better handling of empty values in slices/arrays if the slice or array has no values, skip it entirely. This fixes an issue where a struct field with a custom delimiter was included in the returned url.Values with an empty string rather than being omitted entirely (as is the case when there is no custom delimiter) fixes #57
go-querystring is a Go library for encoding structs into URL query parameters.
import "github.com/google/go-querystring/query"
go-querystring is designed to assist in scenarios where you want to construct a URL using a struct that represents the URL query parameters. You might do this to enforce the type safety of your parameters, for example, as is done in the go-github library.
The query package exports a single Values()
function. A simple example:
type Options struct { Query string `url:"q"` ShowAll bool `url:"all"` Page int `url:"page"` } opt := Options{ "foo", true, 2 } v, _ := query.Values(opt) fmt.Print(v.Encode()) // will output: "q=foo&all=true&page=2"
See the package godocs for complete documentation on supported types and formatting options.
If you are looking for a library that can both encode and decode query strings, you might consider one of these alternatives: