{"action":"created","issue":{"url":"https://api.github.com/repos/afcowie/http-common/issues/2","labels_url":"https://api.github.com/repos/afcowie/http-common/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/afcowie/http-common/issues/2/comments","events_url":"https://api.github.com/repos/afcowie/http-common/issues/2/events","html_url":"https://github.com/afcowie/http-common/issues/2","id":23323653,"number":2,"title":"Query string support (more sophisticated URIs)","user":{"login":"tel","id":1141,"avatar_url":"https://avatars.githubusercontent.com/u/1141?v=3","gravatar_id":"","url":"https://api.github.com/users/tel","html_url":"https://github.com/tel","followers_url":"https://api.github.com/users/tel/followers","following_url":"https://api.github.com/users/tel/following{/other_user}","gists_url":"https://api.github.com/users/tel/gists{/gist_id}","starred_url":"https://api.github.com/users/tel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tel/subscriptions","organizations_url":"https://api.github.com/users/tel/orgs","repos_url":"https://api.github.com/users/tel/repos","events_url":"https://api.github.com/users/tel/events{/privacy}","received_events_url":"https://api.github.com/users/tel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2013-11-26T15:52:50Z","updated_at":"2016-01-17T21:51:25Z","closed_at":null,"body":"While query strings are almost out of scope of the HTTP spec, in practice they are of course completely ubiquitous. While it's possible to encode them in the current API, it's certainly not possible to do it with any type safety or ease as the `path` component of a `Request` is just an untyped `ByteString`.\r\n\r\nThis is particularly hairy when trying to process a request just prior to sending, such as to append cryptographic signature information.\r\n\r\nURIs have a lot more structure than that according to rfc3986, so it'd be nice to expose that structure more easily in the interface to `http-common`.\r\n\r\nI propose adding more structured ways to query and build paths used in building `Request`s. This could be done by building atop existing URI packages like `network`, `http-types`, or `uri`. It also might be worth considering a fresh implementation if none of those packages provide an API which fits \"nicely\" into `http-common`'s methods.\r\n\r\nIn particular, `network` is very old, `uri` and `network` both use `String` types, and `http-types` brings along more types, like `Method`, already replicated in `http-common`."},"comment":{"url":"https://api.github.com/repos/afcowie/http-common/issues/comments/172386498","html_url":"https://github.com/afcowie/http-common/issues/2#issuecomment-172386498","issue_url":"https://api.github.com/repos/afcowie/http-common/issues/2","id":172386498,"user":{"login":"afcowie","id":1088511,"avatar_url":"https://avatars.githubusercontent.com/u/1088511?v=3","gravatar_id":"","url":"https://api.github.com/users/afcowie","html_url":"https://github.com/afcowie","followers_url":"https://api.github.com/users/afcowie/followers","following_url":"https://api.github.com/users/afcowie/following{/other_user}","gists_url":"https://api.github.com/users/afcowie/gists{/gist_id}","starred_url":"https://api.github.com/users/afcowie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/afcowie/subscriptions","organizations_url":"https://api.github.com/users/afcowie/orgs","repos_url":"https://api.github.com/users/afcowie/repos","events_url":"https://api.github.com/users/afcowie/events{/privacy}","received_events_url":"https://api.github.com/users/afcowie/received_events","type":"User","site_admin":false},"created_at":"2016-01-17T21:51:25Z","updated_at":"2016-01-17T21:51:25Z","body":"So _is_ there an existing library that does URIs properly (to your requirement)?"}}