Documentation ¶
Overview ¶
The webcontext package is Goweb's implementation of the Context object.
If you plan to write unit tests, see also the http://godoc.org/github.com/stretchr/goweb/webcontext/test package.
Index ¶
- type WebContext
- func (c *WebContext) CodecOptions() objx.Map
- func (c *WebContext) CodecService() codecsservices.CodecService
- func (c *WebContext) Data() objx.Map
- func (c *WebContext) FileExtension() string
- func (c *WebContext) FormParams() objx.Map
- func (c *WebContext) FormValue(keypath string) string
- func (c *WebContext) FormValues(keypath string) []string
- func (c *WebContext) HttpRequest() *http.Request
- func (c *WebContext) HttpResponseWriter() http.ResponseWriter
- func (c *WebContext) MethodString() string
- func (c *WebContext) Path() *paths.Path
- func (c *WebContext) PathParam(keypath string) string
- func (c *WebContext) PathParams() objx.Map
- func (c *WebContext) PathValue(keypath string) string
- func (c *WebContext) PostParams() objx.Map
- func (c *WebContext) PostValue(keypath string) string
- func (c *WebContext) PostValues(keypath string) []string
- func (c *WebContext) QueryParams() objx.Map
- func (c *WebContext) QueryValue(keypath string) string
- func (c *WebContext) QueryValues(keypath string) []string
- func (c *WebContext) RequestBody() ([]byte, error)
- func (c *WebContext) RequestData() (interface{}, error)
- func (c *WebContext) RequestDataArray() ([]interface{}, error)
- func (c *WebContext) SetHttpRequest(httpRequest *http.Request)
- func (c *WebContext) SetHttpResponseWriter(responseWriter http.ResponseWriter)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type WebContext ¶
type WebContext struct {
// contains filtered or unexported fields
}
WebContext is a real context.Context that represents a single request.
You can use the goweb/webcontext/test package to easily and quickly generate test versions of the WebContext. See http://godoc.org/github.com/stretchr/goweb/webcontext/test for more information.
func NewWebContext ¶
func NewWebContext(responseWriter http.ResponseWriter, request *http.Request, codecService codecsservices.CodecService) *WebContext
NewWebContext creates a new WebContext with the given request and response objects.
func (*WebContext) CodecOptions ¶
func (c *WebContext) CodecOptions() objx.Map
CodecOptions gets a map of options to pass to codecs when responding.
func (*WebContext) CodecService ¶
func (c *WebContext) CodecService() codecsservices.CodecService
CodecService gets the codecsservices.CodecService that this Context will use to marshal and unmarshal data to and from objects.
func (*WebContext) Data ¶
func (c *WebContext) Data() objx.Map
Data gets a map of data about the context.
func (*WebContext) FileExtension ¶
func (c *WebContext) FileExtension() string
FileExtension gets the extension of the file from the HttpRequest().
func (*WebContext) FormParams ¶
func (c *WebContext) FormParams() objx.Map
FormParams gets the parameters that were posted in the request body and were present in the URL query.
Goweb gives you access to different types of parameters:
QueryParams - Parameters only from the URL query string PostParams - Parameters only from the body FormParams - Parameters from both the body AND the URL query string PathParams - Parameters from the path itself (i.e. /people/123)
func (*WebContext) FormValue ¶
func (c *WebContext) FormValue(keypath string) string
FormValue gets a single value for the specified keypath from the form body and URL query. If there are multiple values the first value is returned.
func (*WebContext) FormValues ¶
func (c *WebContext) FormValues(keypath string) []string
FormValues gets an array of the values for the specified keypath from the form body in the request and the URL query.
func (*WebContext) HttpRequest ¶
func (c *WebContext) HttpRequest() *http.Request
HttpRequest gets the underlying http.Request that this Context represents.
func (*WebContext) HttpResponseWriter ¶
func (c *WebContext) HttpResponseWriter() http.ResponseWriter
HttpResponseWriter gets the underlying http.ResponseWriter that will be used to respond to this request.
func (*WebContext) MethodString ¶
func (c *WebContext) MethodString() string
MethodString gets the HTTP method of this request as an uppercase string.
If a "method" parameter is specified in the URL, it will be used. Otherwise, the method of the HTTP request itself will be used.
func (*WebContext) Path ¶
func (c *WebContext) Path() *paths.Path
Path gets the paths.Path of the request.
func (*WebContext) PathParam ¶
func (c *WebContext) PathParam(keypath string) string
DEPRECATED: Use PathValue instead.
PathParam gets the parameter from PathParams() with the specified keypath.
func (*WebContext) PathParams ¶
func (c *WebContext) PathParams() objx.Map
PathParams gets any parameters that were pulled from the URL path. // Goweb gives you access to different types of parameters:
QueryParams - Parameters only from the URL query string PostParams - Parameters only from the body FormParams - Parameters from both the body AND the URL query string PathParams - Parameters from the path itself (i.e. /people/123)
func (*WebContext) PathValue ¶
func (c *WebContext) PathValue(keypath string) string
PathValue gets the parameter from PathParams() with the specified key.
func (*WebContext) PostParams ¶
func (c *WebContext) PostParams() objx.Map
PostParams gets the parameters that were posted in the request body.
Goweb gives you access to different types of parameters:
QueryParams - Parameters only from the URL query string PostParams - Parameters only from the body FormParams - Parameters from both the body AND the URL query string PathParams - Parameters from the path itself (i.e. /people/123)
func (*WebContext) PostValue ¶
func (c *WebContext) PostValue(keypath string) string
PostValue gets a single value for the specified keypath from the form body. If there are multiple values the first value is returned.
func (*WebContext) PostValues ¶
func (c *WebContext) PostValues(keypath string) []string
FormValues gets an array of the values for the specified keypath from the form body in the request.
func (*WebContext) QueryParams ¶
func (c *WebContext) QueryParams() objx.Map
QueryParams gets the query parameters that are present after the ? in the URL.
Goweb gives you access to different types of parameters:
QueryParams - Parameters only from the URL query string PostParams - Parameters only from the body FormParams - Parameters from both the body AND the URL query string PathParams - Parameters from the path itself (i.e. /people/123)
func (*WebContext) QueryValue ¶
func (c *WebContext) QueryValue(keypath string) string
QueryValue gets a single value for the specified key from the QueryParams. If there are multiple values (i.e. `?name=Mat&name=Laurie`), the first value is returned.
func (*WebContext) QueryValues ¶
func (c *WebContext) QueryValues(keypath string) []string
QueryValues gets an array of the values for the specified key from the QueryParams.
Returns []string because in URLs it's possible to have multiple values for the same key, for example; ?name=Mat&name=Laurie&name=Tyler.
func (*WebContext) RequestBody ¶
func (c *WebContext) RequestBody() ([]byte, error)
RequestBody gets the byte data out of the body of the request.
func (*WebContext) RequestData ¶
func (c *WebContext) RequestData() (interface{}, error)
RequestData gets the data out of the body of the request as a usable object.
func (*WebContext) RequestDataArray ¶
func (c *WebContext) RequestDataArray() ([]interface{}, error)
RequestDataArray gets the RequestData as an []interface{} for ease.
func (*WebContext) SetHttpRequest ¶
func (c *WebContext) SetHttpRequest(httpRequest *http.Request)
SetHttpRequest sets the HttpRequest that represents the original request that issued the interaction. This is set automatically by Goweb, but can be overridden for advanced cases.
func (*WebContext) SetHttpResponseWriter ¶
func (c *WebContext) SetHttpResponseWriter(responseWriter http.ResponseWriter)
SetHttpResponseWriter sets the HttpResponseWriter that will be used to respond to the request.
This is set by Goweb, but can be overridden if you want to intercept the usual writes to do something lower level with them. For example, save the response in memory for testing or logging purposes.
For production, if you set your own ResponseWriter, be sure to also write the response to the original ResponseWriter so that clients actually receive it. You can get the original ResponseWriter by calling the HttpResponseWriter() method on this object.