Documentation ¶
Index ¶
- Constants
- Variables
- func IsParamChar(c byte) bool
- func LoadConfig(yamlfile string) map[string]interface{}
- type Cache
- type Context
- func (c *Context) Body() *RequestBody
- func (c *Context) Break()
- func (c *Context) DI(name string) interface{}
- func (c *Context) Error(err error)
- func (c *Context) Fetch(tpl string) ([]byte, error)
- func (c *Context) Get(key string) interface{}
- func (c *Context) GetCookie(name string) string
- func (c *Context) GetCookieBool(name string) bool
- func (c *Context) GetCookieFloat64(name string) float64
- func (c *Context) GetCookieInt(name string) int
- func (c *Context) GetCookieInt32(name string) int32
- func (c *Context) GetCookieInt64(name string) int64
- func (c *Context) GetFile(name string) (multipart.File, *multipart.FileHeader, error)
- func (c *Context) GetUid() uint32
- func (c *Context) Gets() map[string]interface{}
- func (c *Context) HTML(code int, tpl string)
- func (c *Context) IsAJAX() bool
- func (c *Context) IsMobile() bool
- func (c *Context) JSON(code int, v interface{})
- func (c *Context) JSONP(code int, callback string, v interface{})
- func (c *Context) JSONString(v interface{}) (string, error)
- func (c *Context) Next()
- func (c *Context) Nice() *Nice
- func (c *Context) NotFound()
- func (c *Context) Param(name string) string
- func (c *Context) ParamBool(name string) bool
- func (c *Context) ParamFloat(name string) float64
- func (c *Context) ParamInt(name string) int
- func (c *Context) ParamInt32(name string) int32
- func (c *Context) ParamInt64(name string) int64
- func (c *Context) ParamUint16(name string) uint16
- func (c *Context) ParamUint32(name string) uint32
- func (c *Context) ParamUint8(name string) uint8
- func (c *Context) Params() map[string]string
- func (c *Context) ParseForm(maxSize int64) error
- func (c *Context) Posts() map[string]interface{}
- func (c *Context) Query(name string) string
- func (c *Context) QueryBool(name string) bool
- func (c *Context) QueryEscape(name string) string
- func (c *Context) QueryFloat(name string) float64
- func (c *Context) QueryInt(name string) int
- func (c *Context) QueryInt32(name string) int32
- func (c *Context) QueryInt64(name string) int64
- func (c *Context) QueryJSON(v interface{}) error
- func (c *Context) QueryStrings(name string) []string
- func (c *Context) QueryTrim(name string) string
- func (c *Context) QueryUint16(name string) uint16
- func (c *Context) QueryUint32(name string) uint32
- func (c *Context) QueryUint8(name string) uint8
- func (c *Context) QueryXML(v interface{}) error
- func (c *Context) Querys() map[string]interface{}
- func (c *Context) Redirect(code int, url string) error
- func (c *Context) Referer() string
- func (c *Context) RemoteAddr() string
- func (c *Context) Render(code int, tpl string)
- func (c *Context) Reset(w http.ResponseWriter, r *http.Request)
- func (c *Context) RouteName() string
- func (c *Context) SaveToFile(name, savePath string) error
- func (c *Context) Set(key string, v interface{})
- func (c *Context) SetCookie(name string, value string, others ...interface{})
- func (c *Context) SetParam(name, value string)
- func (c *Context) SetUid(v uint32)
- func (c *Context) String(code int, s string)
- func (c *Context) Text(code int, s []byte)
- func (c *Context) URL(hasQuery bool) string
- func (c *Context) UserAgent() string
- func (c *Context) XML(code int, v interface{})
- type DI
- type DIer
- type Db
- type ErrorHandleFunc
- type HandlerFunc
- type Logger
- type Middleware
- type Mysql
- func (p *Mysql) Begin() (*SQLConnTransaction, error)
- func (p *Mysql) Close() error
- func (p *Mysql) Connect(node MysqlNode, database, charset, MaxLifetime string) (*sql.DB, error)
- func (p *Mysql) Delete(deleteStr string, args ...interface{}) (int64, error)
- func (p *Mysql) Exec(sqlStr string, args ...interface{}) (sql.Result, error)
- func (p *Mysql) Get(queryStr string, args ...interface{}) (map[string]interface{}, error)
- func (p *Mysql) Insert(insertStr string, args ...interface{}) (int64, error)
- func (p *Mysql) Query(sqlStr string, args ...interface{}) ([]map[string]interface{}, error)
- func (p *Mysql) QueryRow(sqlStr string, args ...interface{}) *sql.Row
- func (p *Mysql) Update(updateStr string, args ...interface{}) (int64, error)
- type MysqlConf
- type MysqlNode
- type Nice
- func (n *Nice) Any(pattern string, h ...HandlerFunc) RouteNode
- func (n *Nice) Cache() Cache
- func (n *Nice) Db() Db
- func (n *Nice) Debug() bool
- func (n *Nice) DefaultNotFoundHandler(c *Context)
- func (n *Nice) Delete(pattern string, h ...HandlerFunc) RouteNode
- func (n *Nice) Error(err error, c *Context)
- func (n *Nice) Get(pattern string, h ...HandlerFunc) RouteNode
- func (n *Nice) GetDI(name string) interface{}
- func (n *Nice) Group(pattern string, f func(), h ...HandlerFunc)
- func (n *Nice) Head(pattern string, h ...HandlerFunc) RouteNode
- func (n *Nice) Logger() Logger
- func (n *Nice) NotFound(c *Context)
- func (n *Nice) Options(pattern string, h ...HandlerFunc) RouteNode
- func (n *Nice) Patch(pattern string, h ...HandlerFunc) RouteNode
- func (n *Nice) Post(pattern string, h ...HandlerFunc) RouteNode
- func (n *Nice) Put(pattern string, h ...HandlerFunc) RouteNode
- func (n *Nice) Render() Renderer
- func (n *Nice) Route(pattern, methods string, h ...HandlerFunc) RouteNode
- func (n *Nice) Router() Router
- func (n *Nice) Run(addr string)
- func (n *Nice) RunServer(s *http.Server)
- func (n *Nice) RunTLS(addr, certfile, keyfile string)
- func (n *Nice) RunTLSServer(s *http.Server, crtFile, keyFile string)
- func (n *Nice) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (n *Nice) Server(addr string) *http.Server
- func (n *Nice) SetAutoHead(v bool)
- func (n *Nice) SetAutoTrailingSlash(v bool)
- func (n *Nice) SetDI(name string, h interface{})
- func (n *Nice) SetDIer(v DIer)
- func (n *Nice) SetDebug(v bool)
- func (n *Nice) SetError(h ErrorHandleFunc)
- func (n *Nice) SetNotFound(h HandlerFunc)
- func (n *Nice) Static(prefix string, dir string, index bool, h HandlerFunc)
- func (n *Nice) StaticFile(pattern string, path string) RouteNode
- func (n *Nice) URLFor(name string, args ...interface{}) string
- func (n *Nice) Use(m ...Middleware)
- type Node
- type Redis
- type RedisCnf
- type RedisNode
- type Render
- type Renderer
- type RequestBody
- type Response
- func (r *Response) CloseNotify() <-chan bool
- func (r *Response) Flush()
- func (r *Response) GetWriter() io.Writer
- func (r *Response) Header() http.Header
- func (r *Response) Hijack() (net.Conn, *bufio.ReadWriter, error)
- func (r *Response) SetWriter(w io.Writer)
- func (r *Response) Size() int64
- func (r *Response) Status() int
- func (r *Response) Write(n []byte) (int, error)
- func (r *Response) WriteHeader(code int)
- func (r *Response) Wrote() bool
- type RouteNode
- type Router
- type SQLConnTransaction
- func (t *SQLConnTransaction) Commit() error
- func (t *SQLConnTransaction) Delete(deleteStr string, args ...interface{}) (int64, error)
- func (t *SQLConnTransaction) Exec(sqlStr string, args ...interface{}) (sql.Result, error)
- func (t *SQLConnTransaction) Get(queryStr string, args ...interface{}) (map[string]interface{}, error)
- func (t *SQLConnTransaction) Insert(insertStr string, args ...interface{}) (int64, error)
- func (t *SQLConnTransaction) Query(queryStr string, args ...interface{}) ([]map[string]interface{}, error)
- func (t *SQLConnTransaction) Rollback() error
- func (t *SQLConnTransaction) Update(updateStr string, args ...interface{}) (int64, error)
- type Tree
- func (t *Tree) Add(method, pattern string, handlers []HandlerFunc) RouteNode
- func (t *Tree) GroupAdd(pattern string, f func(), handlers []HandlerFunc)
- func (t *Tree) Match(method, pattern string, c *Context) ([]HandlerFunc, string)
- func (t *Tree) NamedRoutes() map[string]string
- func (t *Tree) Routes() map[string][]string
- func (t *Tree) SetAutoHead(v bool)
- func (t *Tree) SetAutoTrailingSlash(v bool)
- func (t *Tree) URLFor(name string, args ...interface{}) string
Constants ¶
const ( // CharsetUTF8 ... CharsetUTF8 = "charset=utf-8" // MediaTypes ApplicationJSON = "application/json" ApplicationJSONCharsetUTF8 = ApplicationJSON + "; " + CharsetUTF8 ApplicationJavaScript = "application/javascript" ApplicationJavaScriptCharsetUTF8 = ApplicationJavaScript + "; " + CharsetUTF8 ApplicationXML = "application/xml" ApplicationXMLCharsetUTF8 = ApplicationXML + "; " + CharsetUTF8 ApplicationForm = "application/x-www-form-urlencoded" ApplicationProtobuf = "application/protobuf" TextHTML = "text/html" TextHTMLCharsetUTF8 = TextHTML + "; " + CharsetUTF8 TextPlain = "text/plain" TextPlainCharsetUTF8 = TextPlain + "; " + CharsetUTF8 MultipartForm = "multipart/form-data" )
const ( // DEV mode DEV = "development" // PROD mode PROD = "production" // TEST mode TEST = "test" )
const ( GET int = iota POST PUT DELETE PATCH OPTIONS HEAD // RouteLength route table length RouteLength )
Variables ¶
var ( // ErrJSONPayloadEmpty is returned when the JSON payload is empty. ErrJSONPayloadEmpty = errors.New("JSON payload is empty") // ErrXMLPayloadEmpty is returned when the XML payload is empty. ErrXMLPayloadEmpty = errors.New("XML payload is empty") )
var Env string
Env default application runtime environment
var RouterMethodName = map[int]string{ GET: "GET", POST: "POST", PUT: "PUT", DELETE: "DELETE", PATCH: "PATCH", OPTIONS: "OPTIONS", HEAD: "HEAD", }
RouterMethodName declare method name with route table key
var RouterMethods = map[string]int{ "GET": GET, "POST": POST, "PUT": PUT, "DELETE": DELETE, "PATCH": PATCH, "OPTIONS": OPTIONS, "HEAD": HEAD, }
RouterMethods declare method key in route table
Functions ¶
func IsParamChar ¶
IsParamChar check the char can used for route params a-z->65:90, A-Z->97:122, 0-9->48->57, _->95
Types ¶
type Context ¶
Context provlider a HTTP context for nice context contains reqest, response, header, cookie and some content type.
func NewContext ¶
NewContext create a http context
func (*Context) Body ¶
func (c *Context) Body() *RequestBody
Body get raw request body and return RequestBody
func (*Context) Break ¶
func (c *Context) Break()
Break break the handles chain and Immediate return
func (*Context) Fetch ¶
Fetch render data by html template engine use context.store and returns data
func (*Context) GetCookieBool ¶
GetCookieBool returns cookie result in float64 type.
func (*Context) GetCookieFloat64 ¶
GetCookieFloat64 returns cookie result in float64 type.
func (*Context) GetCookieInt ¶
GetCookieInt returns cookie result in int type.
func (*Context) GetCookieInt32 ¶
GetCookieInt32 returns cookie result in int32 type.
func (*Context) GetCookieInt64 ¶
GetCookieInt64 returns cookie result in int64 type.
func (*Context) GetFile ¶
GetFile returns information about user upload file by given form field name.
func (*Context) HTML ¶
HTML write render data by html template engine use context.store it is a alias of c.Render
func (*Context) JSONString ¶
JSONString return string by Marshal interface
func (*Context) Next ¶
func (c *Context) Next()
Next execute next handler handle middleware first, last execute route handler if something wrote to http, break chain and return
func (*Context) NotFound ¶
func (c *Context) NotFound()
NotFound invokes the registered HTTP NotFound handler.
func (*Context) ParamFloat ¶
ParamFloat get route param from context and format to float64
func (*Context) ParamInt32 ¶
ParamInt32 get route param from context and format to int32
func (*Context) ParamInt64 ¶
ParamInt64 get route param from context and format to int64
func (*Context) ParamUint16 ¶
ParamUint16 get route param from context and format to uint16
func (*Context) ParamUint32 ¶
ParamUint32 get route param from context and format to uint32
func (*Context) ParamUint8 ¶
ParamUint8 get route param from context and format to uint8
func (*Context) ParseForm ¶
ParseForm parses a request body as multipart/form-data or parses the raw query from the URL and updates r.Form.
func (*Context) QueryEscape ¶
QueryEscape returns escapred query result.
func (*Context) QueryFloat ¶
QueryFloat get a param from http.Request.Form and format to float64
func (*Context) QueryInt32 ¶
QueryInt32 get a param from http.Request.Form and format to int32
func (*Context) QueryInt64 ¶
QueryInt64 get a param from http.Request.Form and format to int64
func (*Context) QueryStrings ¶
QueryStrings get a group param from http.Request.Form and format to string slice
func (*Context) QueryUint16 ¶
QueryUint16 get a param from http.Request.Form and format to uint16
func (*Context) QueryUint32 ¶
QueryUint32 get a param from http.Request.Form and format to uint32
func (*Context) QueryUint8 ¶
QueryUint8 get a param from http.Request.Form and format to uint8
func (*Context) RemoteAddr ¶
RemoteAddr returns more real IP address.
func (*Context) SaveToFile ¶
SaveToFile reads a file from request by field name and saves to given path.
func (*Context) SetCookie ¶
SetCookie sets given cookie value to response header. full params example: SetCookie(<name>, <value>, <max age>, <path>, <domain>, <secure>, <http only>)
type DI ¶
type DI struct {
// contains filtered or unexported fields
}
DI provlider a dependency injection service for nice
type ErrorHandleFunc ¶
ErrorHandleFunc HTTP error handleFunc
type HandlerFunc ¶
type HandlerFunc func(*Context)
HandlerFunc context handler func
func WrapHandlerFunc ¶
func WrapHandlerFunc(h HandlerFunc) HandlerFunc
WrapHandlerFunc wrap for context handler chain
type Logger ¶
type Logger interface { Print(v ...interface{}) Printf(format string, v ...interface{}) Println(v ...interface{}) Fatal(v ...interface{}) Fatalf(format string, v ...interface{}) Fatalln(v ...interface{}) Panic(v ...interface{}) Panicf(format string, v ...interface{}) Panicln(v ...interface{}) }
Logger provlider a basic log interface for nice
type Mysql ¶
mysql is DB pool struct
type Nice ¶
type Nice struct { Conf map[string]interface{} // contains filtered or unexported fields }
Nice provlider an application
func (*Nice) Any ¶
func (n *Nice) Any(pattern string, h ...HandlerFunc) RouteNode
Any is a shortcut for n.Router().handle("*", pattern, handlers)
func (*Nice) DefaultNotFoundHandler ¶
DefaultNotFoundHandler invokes the default HTTP error handler.
func (*Nice) Delete ¶
func (n *Nice) Delete(pattern string, h ...HandlerFunc) RouteNode
Delete is a shortcut for n.Route(pattern, "DELETE", handlers)
func (*Nice) Get ¶
func (n *Nice) Get(pattern string, h ...HandlerFunc) RouteNode
Get is a shortcut for n.Route(pattern, "GET", handlers)
func (*Nice) Group ¶
func (n *Nice) Group(pattern string, f func(), h ...HandlerFunc)
Group registers a list of same prefix route
func (*Nice) Head ¶
func (n *Nice) Head(pattern string, h ...HandlerFunc) RouteNode
Head is a shortcut forn.Route(pattern, "Head", handlers)
func (*Nice) Options ¶
func (n *Nice) Options(pattern string, h ...HandlerFunc) RouteNode
Options is a shortcut for n.Route(pattern, "Options", handlers)
func (*Nice) Patch ¶
func (n *Nice) Patch(pattern string, h ...HandlerFunc) RouteNode
Patch is a shortcut for n.Route(pattern, "PATCH", handlers)
func (*Nice) Post ¶
func (n *Nice) Post(pattern string, h ...HandlerFunc) RouteNode
Post is a shortcut for n.Route(pattern, "POST", handlers)
func (*Nice) Put ¶
func (n *Nice) Put(pattern string, h ...HandlerFunc) RouteNode
Put is a shortcut for n.Route(pattern, "Put", handlers)
func (*Nice) Route ¶
func (n *Nice) Route(pattern, methods string, h ...HandlerFunc) RouteNode
Route is a shortcut for same handlers but different HTTP methods.
Example:
nice.Route("/", "GET,POST", h)
func (*Nice) RunTLSServer ¶
RunTLSServer runs a custom server with TLS configuration.
func (*Nice) SetAutoHead ¶
SetAutoHead sets the value who determines whether add HEAD method automatically when GET method is added. Combo router will not be affected by this value.
func (*Nice) SetAutoTrailingSlash ¶
SetAutoTrailingSlash optional trailing slash.
func (*Nice) SetNotFound ¶
func (n *Nice) SetNotFound(h HandlerFunc)
SetNotFound set not found route handler
func (*Nice) Static ¶
func (n *Nice) Static(prefix string, dir string, index bool, h HandlerFunc)
Static set static file route h used for set Expries ...
func (*Nice) StaticFile ¶
StaticFile shortcut for serve file
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
Node is struct for named route
type Redis ¶
type Redis struct {
// contains filtered or unexported fields
}
redis is RDS struct
type RequestBody ¶
type RequestBody struct {
// contains filtered or unexported fields
}
RequestBody represents a request body.
func (*RequestBody) Bytes ¶
func (rb *RequestBody) Bytes() ([]byte, error)
Bytes reads and returns content of request body in bytes.
func (*RequestBody) ReadCloser ¶
func (rb *RequestBody) ReadCloser() io.ReadCloser
ReadCloser returns a ReadCloser for request body.
func (*RequestBody) String ¶
func (rb *RequestBody) String() (string, error)
String reads and returns content of request body in string.
type Response ¶
type Response struct {
// contains filtered or unexported fields
}
Response implement ResponseWriter
func (*Response) CloseNotify ¶
CloseNotify implements the http.CloseNotifier interface to allow detecting when the underlying connection has gone away. This mechanism can be used to cancel long operations on the server if the client has disconnected before the response is ready. See http.CloseNotifier(https://golang.org/pkg/net/http/#CloseNotifier)
func (*Response) Flush ¶
func (r *Response) Flush()
Flush implements the http.Flusher interface to allow an HTTP handler to flush buffered data to the client. See http.Flusher(https://golang.org/pkg/net/http/#Flusher)
func (*Response) Header ¶
Header returns the header map that will be sent by WriteHeader. Changing the header after a call to WriteHeader (or Write) has no effect unless the modified headers were declared as trailers by setting the "Trailer" header before the call to WriteHeader (see example). To suppress implicit response headers, set their value to nil.
func (*Response) Hijack ¶
Hijack implements the http.Hijacker interface to allow an HTTP handler to take over the connection. See http.Hijacker(https://golang.org/pkg/net/http/#Hijacker)
func (*Response) Write ¶
Write writes the data to the connection as part of an HTTP reply. If WriteHeader has not yet been called, Write calls WriteHeader(http.StatusOK) before writing the data. If the Header does not contain a Content-Type line, Write adds a Content-Type set to the result of passing the initial 512 bytes of written data to DetectContentType.
func (*Response) WriteHeader ¶
WriteHeader sends an HTTP response header with status code. If WriteHeader is not called explicitly, the first call to Write will trigger an implicit WriteHeader(http.StatusOK). Thus explicit calls to WriteHeader are mainly used to send error codes.
type Router ¶
type Router interface { // SetAutoHead sets the value who determines whether add HEAD method automatically // when GET method is added. Combo router will not be affected by this value. SetAutoHead(v bool) // SetAutoTrailingSlash optional trailing slash. SetAutoTrailingSlash(v bool) // Match find matched route then returns handlers and name Match(method, uri string, c *Context) ([]HandlerFunc, string) // URLFor use named route return format url URLFor(name string, args ...interface{}) string // Add registers a new handle with the given method, pattern and handlers. Add(method, pattern string, handlers []HandlerFunc) RouteNode // GroupAdd registers a list of same prefix route GroupAdd(pattern string, f func(), handlers []HandlerFunc) // Routes returns registered route uri in a string slice Routes() map[string][]string // NamedRoutes returns named route uri in a string slice NamedRoutes() map[string]string }
Router is an router interface for nice
type SQLConnTransaction ¶
SQLConnTransaction is for transaction connection
func (*SQLConnTransaction) Delete ¶
func (t *SQLConnTransaction) Delete(deleteStr string, args ...interface{}) (int64, error)
Delete via transaction
func (*SQLConnTransaction) Exec ¶
func (t *SQLConnTransaction) Exec(sqlStr string, args ...interface{}) (sql.Result, error)
func (*SQLConnTransaction) Get ¶
func (t *SQLConnTransaction) Get(queryStr string, args ...interface{}) (map[string]interface{}, error)
Get via transaction
func (*SQLConnTransaction) Insert ¶
func (t *SQLConnTransaction) Insert(insertStr string, args ...interface{}) (int64, error)
Insert via transaction
func (*SQLConnTransaction) Query ¶
func (t *SQLConnTransaction) Query(queryStr string, args ...interface{}) ([]map[string]interface{}, error)
Query via transaction
func (*SQLConnTransaction) Rollback ¶
func (t *SQLConnTransaction) Rollback() error
Rollback transaction
type Tree ¶
type Tree struct {
// contains filtered or unexported fields
}
Tree provlider router for nice with radix tree
func (*Tree) Add ¶
func (t *Tree) Add(method, pattern string, handlers []HandlerFunc) RouteNode
Add registers a new handle with the given method, pattern and handlers. add check training slash option.
func (*Tree) GroupAdd ¶
func (t *Tree) GroupAdd(pattern string, f func(), handlers []HandlerFunc)
GroupAdd add a group route has same prefix and handle chain
func (*Tree) Match ¶
func (t *Tree) Match(method, pattern string, c *Context) ([]HandlerFunc, string)
Match find matched route then returns handlers and name
func (*Tree) NamedRoutes ¶
NamedRoutes returns named route uri in a string slice
func (*Tree) SetAutoHead ¶
SetAutoHead sets the value who determines whether add HEAD method automatically when GET method is added. Combo router will not be affected by this value.
func (*Tree) SetAutoTrailingSlash ¶
SetAutoTrailingSlash optional trailing slash.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
A Default Config for example is below:
|
A Default Config for example is below: |