Documentation ¶
Index ¶
- type AfterFunc
- type App
- func (server *App) After(path string, afterFunc AfterFunc)
- func (server *App) Before(path string, beforeFunc BeforeFunc)
- func (server *App) Delete(path string, handler HandlerFunc) *App
- func (server *App) Get(path string, handler HandlerFunc) *App
- func (server *App) Head(path string, handler HandlerFunc) *App
- func (server *App) Options(path string, handler HandlerFunc) *App
- func (server *App) Patch(path string, handler HandlerFunc) *App
- func (server *App) Post(path string, handler HandlerFunc) *App
- func (server *App) Put(path string, handler HandlerFunc) *App
- func (server *App) Route(path string, scopeFunc func()) *App
- func (server *App) Shutdown() error
- func (server *App) Start(port ...uint16) error
- type BeforeFunc
- type Call
- func (call *Call) Authorization() string
- func (call *Call) BodyAs(obj any) error
- func (call *Call) Cookie(name string, cookies ...*http.Cookie) (*http.Cookie, error)
- func (call *Call) Error(err error)
- func (call *Call) File(key string) (*multipart.FileHeader, error)
- func (call *Call) Files(key string) ([]*multipart.FileHeader, error)
- func (call *Call) FormParam(key string) (string, error)
- func (call *Call) FormParamOrDefault(key string, def string) string
- func (call *Call) FormParams() (url.Values, error)
- func (call *Call) HTML(text string)
- func (call *Call) Header(key string, value ...string) string
- func (call *Call) HeaderOrDefault(key string, def string) string
- func (call *Call) Host() string
- func (call *Call) ID() string
- func (call *Call) JSON(obj interface{})
- func (call *Call) Method() string
- func (call *Call) PathParam(key string) string
- func (call *Call) PathParams() map[string]string
- func (call *Call) QueryParam(key string) string
- func (call *Call) QueryParamOrDefault(key string, def string) string
- func (call *Call) Redirect(url string, permanent ...bool)
- func (call *Call) Referer() string
- func (call *Call) SessionAttr(key string, value ...any) (any, error)
- func (call *Call) SessionAttrOrDefault(key string, def any) any
- func (call *Call) Status(statusCode ...int) int
- func (call *Call) Text(text string)
- func (call *Call) URL() *url.URL
- func (call *Call) UserAgent() string
- type Config
- func (config *Config) EnableSessions(confFunc ...SessionConfigFunc) *Config
- func (config *Config) Plugin(plugin Plugin) *Config
- func (config *Config) Port(port uint16) *Config
- func (config *Config) ServerMaxBodyReadSize(maxReadSize int64) *Config
- func (config *Config) ServerMaxReadTimeout(timeout int64) *Config
- func (config *Config) ServerShutdownTimeout(timeout int64) *Config
- type ConfigFunc
- type HandlerFunc
- type Plugin
- type SessionConfigFunc
- type SessionConfiguration
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
func (*App) After ¶
Add an after handler to given path
Add an after handler that will run after any endpoint handler which matches the same request.
func (*App) Before ¶
func (server *App) Before(path string, beforeFunc BeforeFunc)
Add a before handler to given path
Add a before handler that will run before any endpoint handler which matches the same request. If the before handler returns false, the request will be short circuited.
func (*App) Delete ¶ added in v0.0.6
func (server *App) Delete(path string, handler HandlerFunc) *App
Add a DELETE handler
Add a DELETE handler based on where you are in a hierarchy composed from other method handlers or route handlers.
func (*App) Get ¶
func (server *App) Get(path string, handler HandlerFunc) *App
Add a GET handler
Add a GET handler based on where you are in a hierarchy composed from other method handlers or route handlers.
func (*App) Head ¶
func (server *App) Head(path string, handler HandlerFunc) *App
Add a HEAD handler
Add a HEAD handler based on where you are in a hierarchy composed from other method handlers or route handlers.
func (*App) Options ¶
func (server *App) Options(path string, handler HandlerFunc) *App
Add a OPTIONS handler
Add a OPTIONS handler based on where you are in a hierarchy composed from other method handlers or route handlers.
func (*App) Patch ¶
func (server *App) Patch(path string, handler HandlerFunc) *App
Add a PATCH handler
Add a PATCH handler based on where you are in a hierarchy composed from other method handlers or route handlers.
func (*App) Post ¶
func (server *App) Post(path string, handler HandlerFunc) *App
Add a POST handler
Add a POST handler based on where you are in a hierarchy composed from other method handlers or route handlers.
func (*App) Put ¶
func (server *App) Put(path string, handler HandlerFunc) *App
Add a PUT handler
Add a PUT handler based on where you are in a hierarchy composed from other method handlers or route handlers.
func (*App) Route ¶
Add a route to the given path
Add a route which provides a scoped route function for which you can add methods or even more routes into. This allows for hierarchical building of routes and methods.
type BeforeFunc ¶
type Call ¶
type Call struct { Raw raw // Raw contains the raw request and response // contains filtered or unexported fields }
Call is used to interact with the request and response object
It exposes several convenience methods for handling both path, query as well as body for the request. It follows simple conventions for getting and setting values and uses the same method for getting values from the request and setting values on the response by having optional values.
func (*Call) Authorization ¶ added in v0.1.2
Authorization returns the Authorization header if available.
func (*Call) BodyAs ¶
Get body as given struct
BodyAs takes a pointer as input and tries to deserialize the body into the object expecting the body to be JSON. Returns an error on failed unmarshalling or non-pointer.
func (*Call) Cookie ¶ added in v0.1.2
Get or set a Cookie by name and value
Get a Cookie based on given Cookie name request or set a Cookie on the response by providing a value.
func (*Call) Error ¶
Handle an error
Write a response based on given error. If the error is recognized as a govalin error the error is handled specific according to the error.
func (*Call) File ¶ added in v0.1.0
func (call *Call) File(key string) (*multipart.FileHeader, error)
File returns a FileHeader for given file name in the request body.
func (*Call) Files ¶ added in v0.1.0
func (call *Call) Files(key string) ([]*multipart.FileHeader, error)
Files returns an array for the given file name in the request body.
func (*Call) FormParam ¶
Get the value of given form param key
Parses the body as a www-form-urlencoded body. If the content type is not correct a warning is given and an empty string is returned.
func (*Call) FormParamOrDefault ¶
Get form param value by key, if empty, use default
Get a form param value based on given key from the request, or use the given default value if the value is an empty string.
func (*Call) FormParams ¶ added in v0.1.0
FormParams returns all form parameters available in the request body.
func (*Call) HTML ¶
Send text as HTML to response
HTML will set the content-type of the response as text/html and write it to the response. If no other status has been given the response, it will write a 200 OK to the response.
func (*Call) Header ¶
Get or set header by given key and value
Get a header value based on given header key from the request or set header value on the response by providing a value.
func (*Call) HeaderOrDefault ¶
Get header value by key, if empty, use default
Get a header value based on given header key from the request, or use the given default value if the value is an empty string.
func (*Call) JSON ¶
func (call *Call) JSON(obj interface{})
Send obj as JSON to response
JSON will set the content-type of the response as application/json and serializes the given object as JSON, and writes it to the response. If no other status has been given the response, it will write a 200 OK to the response.
func (*Call) PathParams ¶
Get all path params as a map
Returns a map populated with the values based on the configuration of the path URL as a map[string]string.
func (*Call) QueryParamOrDefault ¶
Get query param by key, if empty, use default
Returns the query param value as string or use the given default value if the value is an empty string.
func (*Call) Redirect ¶ added in v0.2.0
Redirect redirects the request to the given URL
Redirect will set the status code to 302 or 301 (if permenant) and set the location header to the given URL.
func (*Call) Referer ¶ added in v0.1.2
Referer returns the requests referer header if available. Also handles the edge case if the name of the header names spelling is correct (referrer).
func (*Call) SessionAttr ¶ added in v0.2.0
func (*Call) SessionAttrOrDefault ¶ added in v0.2.0
func (*Call) Status ¶
Set HTTP status that will be used on JSON/Text/HTML calls
If the status has already been set, a warning will be printed. The status will not be written to the response until a JSON/Text/HTML-call is made.
type Config ¶ added in v0.1.0
type Config struct {
// contains filtered or unexported fields
}
Config contains configuration for a Govalin instance.
func (*Config) EnableSessions ¶ added in v0.2.0
func (config *Config) EnableSessions(confFunc ...SessionConfigFunc) *Config
EnableSessions configures govalin to use sessions for all requests.
func (*Config) Plugin ¶ added in v0.1.0
Plugin lets you to provide a Plugin that can interact on the Govalin instance.
func (*Config) ServerMaxBodyReadSize ¶ added in v0.1.0
ServerMaxBodyReadSize sets the max read size to accept from POST requests.
The server will error if the body size is too big and refuse to handle the request further. This is to control DDoS attacks using big body sizes.
func (*Config) ServerMaxReadTimeout ¶ added in v0.1.0
ServerMaxReadTimeout sets the max read timeout for requests towards the Govalin server.
func (*Config) ServerShutdownTimeout ¶ added in v0.1.0
ServerShutdownTimeout sets the max timeout for before forcefully shutting the server down.
type ConfigFunc ¶ added in v0.1.0
type ConfigFunc func(config *Config)
ConfigFunc gives a config function that will generate a Config for the Govalin object.
type HandlerFunc ¶
type HandlerFunc func(call *Call)
type Plugin ¶ added in v0.1.0
type Plugin interface { // Name should return the name of the plugin for logging and debugging // purposes Name() string // OnInit supplies the configuraiton will be run before any handlers are // added OnInit(*Config) // Apply will provide the Plugin with the Govalin app instance so it can // add new routes or act upon the Govalin instance in other plugin'y ways. Apply(app *App) }
Plugin is a way of interacting on a Govalin instance.
type SessionConfigFunc ¶ added in v0.2.0
type SessionConfigFunc func(sessionConfig *SessionConfiguration)
type SessionConfiguration ¶ added in v0.2.0
type SessionConfiguration struct {
// contains filtered or unexported fields
}
func (*SessionConfiguration) SessionExpireTime ¶ added in v0.2.0
func (config *SessionConfiguration) SessionExpireTime(expireTime time.Duration) *SessionConfiguration
SessionExpireTime sets the expire time for sessions.
func (*SessionConfiguration) SessionStore ¶ added in v0.2.0
func (config *SessionConfiguration) SessionStore(store session.Store) *SessionConfiguration
SessionStore sets the session store to use.