{"id":48593468,"url":"https://github.com/orian/params","last_synced_at":"2026-04-08T20:54:16.784Z","repository":{"id":33270636,"uuid":"36915204","full_name":"orian/params","owner":"orian","description":"A simple wrapper to parse map[string]string values as int, float, bool.","archived":false,"fork":false,"pushed_at":"2016-02-23T17:38:09.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-08T20:54:15.550Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-05T06:08:05.000Z","updated_at":"2016-02-23T13:41:18.000Z","dependencies_parsed_at":"2022-08-18T16:50:09.425Z","dependency_job_id":null,"html_url":"https://github.com/orian/params","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/orian/params","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orian%2Fparams","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orian%2Fparams/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orian%2Fparams/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orian%2Fparams/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orian","download_url":"https://codeload.github.com/orian/params/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orian%2Fparams/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31573788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-08T20:54:13.030Z","updated_at":"2026-04-08T20:54:16.768Z","avatar_url":"https://github.com/orian.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# params\nA simple wrapper to parse `map[string]string` and `map[string][]string` values as int, float, bool.\n\nIt was written with Gorilla Mux (https://github.com/gorilla/mux) and `url.Values` in mind.\n\n#API\n\nThere are two types `Params` and `Param`. The first one is a collection of all params. \nTo create a `Params` one should call one of:\n \n  - `func NewParams(m map[string]string) Params`\n  - `func NewParamsSlices(m map[string][]string) Params`\n\nOne can check if a param is available and get it using: `func (*Params) Has(name string) bool` and `func (*Params) Get(name string) *Param`. `Param` keeps value of one param. Then one may check if parsing param as a given type is possible using one of many functions: `func (*Param) CanInt() bool` (similar for `int32`, `int64`, etc.).\nOne may get value as a given type by: `func (*Param) Float32() float32`, it will return a value parsed as given type. It will return default value if cannot parse. \n\n**Beware**, the code:\n```go\nps := params.NewParams(...).Get(\"var\")\np := ps.Float32()\n```\nwill panic if Params doesn't have a `var` parameter set. It's because `Get` will return nil and one calls a method on `nil`. It's by design. If one wants default's then should use `.Float32Or(0.)` which if parsing not possible or with error returns an argument.\n\n# Example\n\n```go\nimport (\n  \"github.com/orian/params\"\n  \"github.com/gorilla/mux\"\n)\n```\nAnd\n```go\nfunc ListH(w http.ResponseWriter, req *http.Request) {\n\tpage := params.NewParams(mux.Vars(req)).Get(\"page\").IntOr(0)\n\tfmt.Fprintf(w, \"List view, page: %d\", page)\n}\n\nfunc main() {\n\tr := mux.NewRouter()\n\tr.HandleFunc(\"/new\", FormH).Methods(\"GET\")\n\tr.HandleFunc(\"/upload\", UploadH).Methods(\"POST\")\n\tr.HandleFunc(\"/\", ListH)\n\tr.HandleFunc(\"/p/{page}\", ListH)\n\tr.HandleFunc(\"/k/{id}\", DetailH)\n\n\tlog.Print(http.ListenAndServe(\":8080\", r))\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forian%2Fparams","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forian%2Fparams","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forian%2Fparams/lists"}