diff --git a/engine/engine.go b/engine/engine.go index 06e05a77..d3f410a1 100644 --- a/engine/engine.go +++ b/engine/engine.go @@ -64,6 +64,7 @@ type ( Path() string SetPath(string) QueryValue(string) string + QueryString() string } // Config defines engine configuration. diff --git a/engine/fasthttp/header.go b/engine/fasthttp/header.go index c3c3e93d..36417102 100644 --- a/engine/fasthttp/header.go +++ b/engine/fasthttp/header.go @@ -42,6 +42,7 @@ func (h *RequestHeader) reset(hdr *fasthttp.RequestHeader) { // Add implements `engine.Header#Add` method. func (h *ResponseHeader) Add(key, val string) { + // TODO: https://github.com/valyala/fasthttp/issues/69 // h.header.Add(key, val) } diff --git a/engine/fasthttp/url.go b/engine/fasthttp/url.go index 1e8db125..0cb16e03 100644 --- a/engine/fasthttp/url.go +++ b/engine/fasthttp/url.go @@ -26,6 +26,11 @@ func (u *URL) QueryValue(name string) string { return string(u.QueryArgs().Peek(name)) } +// QueryString implements `engine.URL#QueryString` method. +func (u *URL) QueryString() string { + return string(u.URI.QueryString()) +} + func (u *URL) reset(uri *fasthttp.URI) { u.URI = uri } diff --git a/engine/standard/url.go b/engine/standard/url.go index c2f743ce..06e0c6c5 100644 --- a/engine/standard/url.go +++ b/engine/standard/url.go @@ -28,6 +28,11 @@ func (u *URL) QueryValue(name string) string { return u.query.Get(name) } +// QueryString implements `engine.URL#QueryString` method. +func (u *URL) QueryString() string { + return u.URL.RawQuery +} + func (u *URL) reset(url *url.URL) { u.URL = url } diff --git a/test/url.go b/test/url.go index 8f64813f..277df0e4 100644 --- a/test/url.go +++ b/test/url.go @@ -28,6 +28,10 @@ func (u *URL) QueryValue(name string) string { return u.query.Get(name) } +func (u *URL) QueryString() string { + return u.url.RawQuery +} + func (u *URL) Object() interface{} { return u.url }