The easiest way to create web applications with Go
var Config = &ServerConfig{ RecoverPanic: true, ColorOutput: true, }
Config is the configuration of the main server.
func Close()
Close stops the main server.
func Delete(route string, handler interface{})
Delete adds a handler for the 'DELETE' http method in the main server.
func Get(route string, handler interface{})
Get adds a handler for the 'GET' http method in the main server.
func Handle(route string, method string, httpHandler http.Handler)
Add a custom http.Handler. Will have no effect when running as FCGI or SCGI.
func Match(method string, route string, handler interface{})
Match adds a handler for an arbitrary http method in the main server.
func NewCookie(name string, value string, age int64) *http.Cookie
NewCookie is a helper method that returns a new http.Cookie object. Duration is specified in seconds. If the duration is zero, the cookie is permanent. This can be used in conjunction with ctx.SetCookie.
func Post(route string, handler interface{})
Post adds a handler for the 'POST' http method in the main server.
func Process(c http.ResponseWriter, req *http.Request)
Process invokes the main server's routing system.
func Put(route string, handler interface{})
Put adds a handler for the 'PUT' http method in the main server.
func Run(addr string)
Run starts the web application and serves HTTP requests for the main server.
func RunFcgi(addr string)
RunFcgi starts the web application and serves FastCGI requests for the main server.
func RunScgi(addr string)
RunScgi starts the web application and serves SCGI requests for the main server.
func RunTLS(addr string, config *tls.Config)
RunTLS starts the web application and serves HTTPS requests for the main server.
func SetLogger(logger *log.Logger)
SetLogger sets the logger for the main server.
func Slug(s string, sep string) string
Slug is a helper function that returns the URL slug for string s. It's used to return clean, URL-friendly strings that can be used in routing.
func Urlencode(data map[string]string) string
Urlencode is a helper method that converts a map into URL-encoded form data. It is a useful when constructing HTTP POST requests.
func Websocket(route string, httpHandler websocket.Handler)
Adds a handler for websockets. Only for webserver mode. Will have no effect when running as FCGI or SCGI.
type Context struct { Request *http.Request Params map[string]string Server *Server http.ResponseWriter }
A Context object is created for every incoming HTTP request, and is passed to handlers as an optional first argument. It provides information about the request, including the http.Request object, the GET and POST params, and acts as a Writer for the response.
func (ctx *Context) Abort(status int, body string)
Abort is a helper method that sends an HTTP header and an optional body. It is useful for returning 4xx or 5xx errors. Once it has been called, any return value from the handler will not be written to the response.
func (ctx *Context) ContentType(val string) string
ContentType sets the Content-Type header for an HTTP response. For example, ctx.ContentType("json") sets the content-type to "application/json" If the supplied value contains a slash (/) it is set as the Content-Type verbatim. The return value is the content type as it was set, or an empty string if none was found.
func (ctx *Context) Forbidden()
Forbidden writes a 403 HTTP response
func (ctx *Context) GetBasicAuth() (string, string, error)
GetBasicAuth returns the decoded user and password from the context's 'Authorization' header.
func (ctx *Context) GetSecureCookie(name string) (string, bool)
func (ctx *Context) NotFound(message string)
NotFound writes a 404 HTTP response
func (ctx *Context) NotModified()
Notmodified writes a 304 HTTP response
func (ctx *Context) Redirect(status int, url_ string)
Redirect is a helper method for 3xx redirects.
func (ctx *Context) SetCookie(cookie *http.Cookie)
SetCookie adds a cookie header to the response.
func (ctx *Context) SetHeader(hdr string, val string, unique bool)
SetHeader sets a response header. If `unique` is true, the current value of that header will be overwritten . If false, it will be appended.
func (ctx *Context) SetSecureCookie(name string, val string, age int64)
func (ctx *Context) Unauthorized()
Unauthorized writes a 401 HTTP response
func (ctx *Context) WriteString(content string)
WriteString writes string data into the response object.
type Server struct { Config *ServerConfig Logger *log.Logger Env map[string]interface{} // contains filtered or unexported fields }
Server represents a web.go server.
func NewServer() *Server
func (s *Server) Close()
Close stops server s.
func (s *Server) Delete(route string, handler interface{})
Delete adds a handler for the 'DELETE' http method for server s.
func (s *Server) Get(route string, handler interface{})
Get adds a handler for the 'GET' http method for server s.
func (s *Server) Handle(route string, method string, httpHandler http.Handler)
Add a custom http.Handler. Will have no effect when running as FCGI or SCGI.
func (s *Server) Match(method string, route string, handler interface{})
Match adds a handler for an arbitrary http method for server s.
func (s *Server) Post(route string, handler interface{})
Post adds a handler for the 'POST' http method for server s.
func (s *Server) Process(c http.ResponseWriter, req *http.Request)
Process invokes the routing system for server s
func (s *Server) Put(route string, handler interface{})
Put adds a handler for the 'PUT' http method for server s.
func (s *Server) Run(addr string)
Run starts the web application and serves HTTP requests for s
func (s *Server) RunFcgi(addr string)
RunFcgi starts the web application and serves FastCGI requests for s.
func (s *Server) RunScgi(addr string)
RunScgi starts the web application and serves SCGI requests for s.
func (s *Server) RunTLS(addr string, config *tls.Config) error
RunTLS starts the web application and serves HTTPS requests for s.
func (s *Server) ServeHTTP(c http.ResponseWriter, req *http.Request)
ServeHTTP is the interface method for Go's http server package
func (s *Server) SetLogger(logger *log.Logger)
SetLogger sets the logger for server s
func (s *Server) Websocket(route string, httpHandler websocket.Handler)
Adds a handler for websockets. Only for webserver mode. Will have no effect when running as FCGI or SCGI.
type ServerConfig struct { StaticDir string Addr string Port int CookieSecret string RecoverPanic bool Profiler bool ColorOutput bool }
ServerConfig is configuration for server objects.