Documentation ¶
Overview ¶
Package znet provides web service
package main import ( "github.com/sohaha/zlsgo/znet" ) func main(){ r := znet.New() r.SetMode(znet.DebugMode) r.GET("/", func(c znet.Context) { c.String(200, "hello world") }) znet.Run() }
Index ¶
- Constants
- Variables
- func ClientIP(r *http.Request) (ip string)
- func ClientPublicIP(r *http.Request) string
- func CloseHotRestartFileMd5()
- func IP2Long(ip net.IP) (i uint, err error)
- func IPString2Long(ip string) (i uint, err error)
- func IsIP(ip string) bool
- func IsLocalAddrIP(ip string) bool
- func IsLocalIP(ip net.IP) bool
- func Long2IP(i uint) (ip net.IP, err error)
- func Long2IPString(i uint) (IP string, err error)
- func MultiplePort(ports []int, change bool) (int, error)
- func Port(port int, change bool) (newPort int, err error)
- func RemoteIP(r *http.Request) string
- func Run()
- type ApiData
- type Context
- func (c *Context) Abort(code ...int)
- func (c *Context) ApiJSON(code int, msg string, data interface{})
- func (c *Context) Bind(obj interface{}) (err error)
- func (c *Context) BindValid(obj interface{}, elements map[string]...) (err error)
- func (c *Context) Byte(code int, value []byte)
- func (c *Context) CompletionLink(link string) string
- func (c *Context) ContentType(contentText ...string) string
- func (c *Context) DefaultFormOrQuery(key string, def string) string
- func (c *Context) DefaultPostForm(key, def string) string
- func (c *Context) DefaultQuery(key string, def string) string
- func (c *Context) File(path string)
- func (c *Context) FormFile(name string) (*multipart.FileHeader, error)
- func (c *Context) GetAllParam() ParamsMapType
- func (c *Context) GetAllQueryst() url.Values
- func (c *Context) GetAllQuerystMaps() map[string]string
- func (c *Context) GetClientIP() (IP string)
- func (c *Context) GetCookie(name string) string
- func (c *Context) GetDataRaw() (string, error)
- func (c *Context) GetHeader(key string) string
- func (c *Context) GetJSON(key string) zjson.Res
- func (c *Context) GetJSONs() (json zjson.Res, err error)
- func (c *Context) GetParam(key string) string
- func (c *Context) GetPostForm(key string) (string, bool)
- func (c *Context) GetPostFormAll() (value url.Values, err error)
- func (c *Context) GetPostFormArray(key string) ([]string, bool)
- func (c *Context) GetPostFormMap(key string) (map[string]string, bool)
- func (c *Context) GetQuery(key string) (string, bool)
- func (c *Context) GetQueryArray(key string) ([]string, bool)
- func (c *Context) GetReferer() string
- func (c *Context) GetUserAgent() string
- func (c *Context) HTML(code int, html string)
- func (c *Context) Host(full ...bool) string
- func (c *Context) IsAjax() bool
- func (c *Context) IsWebsocket() bool
- func (c *Context) JSON(code int, values interface{})
- func (c *Context) MultipartForm() (*multipart.Form, error)
- func (c *Context) Next() (next HandlerFunc)
- func (c *Context) PostFormMap(key string) map[string]string
- func (c *Context) PrevContent() *PrevData
- func (c *Context) Redirect(link string, statusCode ...int)
- func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dist string) error
- func (c *Context) SetContent(data *PrevData)deprecated
- func (c *Context) SetContentType(contentType string) *Context
- func (c *Context) SetCookie(name, value string, maxAge ...int)
- func (c *Context) SetHeader(key, value string)
- func (c *Context) SetStatus(code int) *Context
- func (c *Context) String(code int, format string, values ...interface{})
- func (c *Context) Template(code int, name string, data interface{}, funcMap ...map[string]interface{})
- func (c *Context) Templates(code int, templates []string, data interface{}, ...)
- func (c *Context) Valid(defRule zvalid.Engine, key string, name ...string) zvalid.Engine
- func (c *Context) ValidForm(defRule zvalid.Engine, key string, name ...string) zvalid.Engine
- func (c *Context) ValidJSON(defRule zvalid.Engine, key string, name ...string) zvalid.Engine
- func (c *Context) ValidParam(defRule zvalid.Engine, key string, name ...string) zvalid.Engine
- func (c *Context) ValidQuery(defRule zvalid.Engine, key string, name ...string) zvalid.Engine
- func (c *Context) ValidRule() zvalid.Engine
- func (c *Context) Value(key string, def ...interface{}) (value interface{}, ok bool)
- func (c *Context) WithValue(key string, value interface{}) *Context
- type Data
- type Engine
- func (e *Engine) AddAddr(addrString string, tlsConfig ...TlsCfg)
- func (e *Engine) Any(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) BindStruct(prefix string, s interface{}, handle ...HandlerFunc) error
- func (e *Engine) CONNECT(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) CONNECTAndName(path string, handle HandlerFunc, routeName string)
- func (e *Engine) Customize(method, path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) DELETE(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) DELETEAndName(path string, handle HandlerFunc, routeName string)
- func (e *Engine) FindHandle(rw *Context, req *http.Request, requestURL string, applyMiddleware bool) (not bool)
- func (e *Engine) GET(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) GETAndName(path string, handle HandlerFunc, routeName string)
- func (e *Engine) GenerateURL(method string, routeName string, params map[string]string) (string, error)
- func (e *Engine) GetMiddleware() []HandlerFunc
- func (e *Engine) GetPanicHandler() PanicFunc
- func (e *Engine) GetTrees() map[string]*Tree
- func (e *Engine) Group(prefix string, groupHandle ...func(e *Engine)) (engine *Engine)
- func (e *Engine) HEAD(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) HEADAndName(path string, handle HandlerFunc, routeName string)
- func (e *Engine) Handle(method string, path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) HandleNotFound(c *Context)
- func (e *Engine) IsDebug() bool
- func (e *Engine) LoadHTMLGlob(pattern string)
- func (e *Engine) Match(requestURL string, path string) bool
- func (e *Engine) NewContext(w http.ResponseWriter, req *http.Request) *Context
- func (e *Engine) NotFoundHandler(handler HandlerFunc)
- func (e *Engine) OPTIONS(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) OPTIONSAndName(path string, handle HandlerFunc, routeName string)
- func (e *Engine) PATCH(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) PATCHAndName(path string, handle HandlerFunc, routeName string)
- func (e *Engine) POST(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) POSTAndName(path string, handle HandlerFunc, routeName string)
- func (e *Engine) PUT(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) PUTAndName(path string, handle HandlerFunc, routeName string)
- func (e *Engine) PanicHandler(handler PanicFunc)
- func (e *Engine) PreHandler(preHandler func(context *Context) (stop bool))
- func (e *Engine) Restart() error
- func (e *Engine) ServeHTTP(w http.ResponseWriter, req *http.Request)
- func (e *Engine) SetAddr(addrString string, tlsConfig ...TlsCfg)
- func (e *Engine) SetCustomMethodField(field string)
- func (e *Engine) SetHTMLTemplate(t *template.Template)
- func (e *Engine) SetMode(value string)
- func (e *Engine) SetTemplateFuncMap(funcMap template.FuncMap)
- func (e *Engine) SetTimeout(Timeout time.Duration, WriteTimeout ...time.Duration)
- func (e *Engine) Static(relativePath, root string)
- func (e *Engine) StaticFS(relativePath string, fs http.FileSystem)
- func (e *Engine) StaticFile(relativePath, filepath string)
- func (e *Engine) TRACE(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
- func (e *Engine) TRACEAndName(path string, handle HandlerFunc, routeName string)
- func (e *Engine) Use(middleware ...HandlerFunc)
- type HandlerFunc
- type MiddlewareFunc
- type MiddlewareType
- type Node
- type PanicFunc
- type Parameters
- type ParamsMapType
- type PrevData
- type TlsCfg
- type Tree
Constants ¶
const ( MIMEJSON = "application/json" MIMEPlain = "text/plain" MIMEPOSTForm = "application/x-www-form-urlencoded" MIMEMultipartPOSTForm = "multipart/form-data" )
Content-Type MIME of the most common data formats
const ( // DebugMode dev DebugMode = "dev" // ProdMode release ProdMode = "prod" // TestMode test TestMode = "test" )
Variables ¶
var ( // ContentTypePlain text ContentTypePlain = "text/plain; charset=utf-8" // ContentTypeHTML html ContentTypeHTML = "text/html; charset=utf-8" // ContentTypeJSON json ContentTypeJSON = "application/json; charset=utf-8" )
var ( // ErrGenerateParameters is returned when generating a route withRequestLog wrong parameters. ErrGenerateParameters = errors.New("params contains wrong parameters") // ErrNotFoundRoute is returned when generating a route that can not find route in tree. ErrNotFoundRoute = errors.New("cannot find route in tree") // ErrNotFoundMethod is returned when generating a route that can not find method in tree. ErrNotFoundMethod = errors.New("cannot find method in tree") // ErrPatternGrammar is returned when generating a route that pattern grammar error. ErrPatternGrammar = errors.New("pattern grammar error") )
var ( // Log Log Log = zlog.New(zlog.ColorTextWrap(zlog.ColorGreen, "[Z] ")) Cache = zcache.New("__ZNET__") // Shutdown Done executed after shutting down the server ShutdownDone func() // CloseHotRestart CloseHotRestart bool // BindStructDelimiter structure route delimiter BindStructDelimiter = "-" // BindStructSuffix structure route suffix BindStructSuffix = "" )
Functions ¶
func CloseHotRestartFileMd5 ¶ added in v0.1.26
func CloseHotRestartFileMd5()
CloseHotRestartFileMd5 CloseHotRestartFileMd5
func IsLocalAddrIP ¶ added in v0.1.42
IsLocalAddrIP IsLocalAddrIP
func MultiplePort ¶ added in v1.1.8
MultiplePort Check if the multiple port is available, if not, then automatically get an available
Types ¶
type ApiData ¶ added in v0.1.36
type ApiData struct { Code int `json:"code" example:"200"` Msg string `json:"msg"` Data interface{} `json:"data"` }
ApiData unified return api format
type Context ¶
type Context struct { Writer http.ResponseWriter Request *http.Request Engine *Engine Log *zlog.Logger Cache *zcache.Table sync.RWMutex // contains filtered or unexported fields }
Context context
func (*Context) CompletionLink ¶
CompletionLink Complete the link and add the current domain name if it is not linked
func (*Context) ContentType ¶ added in v0.0.19
ContentType returns the Content-Type header of the request
func (*Context) DefaultFormOrQuery ¶ added in v0.0.19
DefaultFormOrQuery Get Form Or Query
func (*Context) DefaultPostForm ¶
DefaultPostForm Get Form Or Default
func (*Context) DefaultQuery ¶
DefaultQuery Get Query Or Default
func (*Context) FormFile ¶
func (c *Context) FormFile(name string) (*multipart.FileHeader, error)
FormFile FormFile
func (*Context) GetAllParam ¶
func (c *Context) GetAllParam() ParamsMapType
GetAllParam Get the value of all param in the route
func (*Context) GetAllQueryst ¶
GetAllQueryst Get All Queryst
func (*Context) GetAllQuerystMaps ¶ added in v0.1.40
GetAllQuerystMaps Get All Queryst Maps
func (*Context) GetClientIP ¶ added in v0.1.20
GetClientIP Client IP
func (*Context) GetDataRaw ¶ added in v0.0.19
GetDataRaw Get Raw Data
func (*Context) GetPostForm ¶
GetPostForm Get PostForm
func (*Context) GetPostFormAll ¶ added in v0.0.19
GetPostFormAll Get PostForm All
func (*Context) GetPostFormArray ¶
GetPostFormArray Get Post FormArray
func (*Context) GetPostFormMap ¶
GetPostFormMap Get PostForm Map
func (*Context) GetQueryArray ¶
GetQueryArray Get Query Array
func (*Context) GetReferer ¶ added in v0.1.20
GetReferer request referer
func (*Context) GetUserAgent ¶ added in v0.1.20
GetUserAgent http request UserAgent
func (*Context) MultipartForm ¶
MultipartForm MultipartForm
func (*Context) PostFormMap ¶
PostFormMap PostForm Map
func (*Context) PrevContent ¶ added in v0.0.19
PrevContent current output content
func (*Context) SaveUploadedFile ¶
func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dist string) error
SaveUploadedFile Save Uploaded File
func (*Context) SetContent
deprecated
added in
v0.1.21
func (*Context) SetContentType ¶ added in v0.0.26
func (*Context) Template ¶
func (c *Context) Template(code int, name string, data interface{}, funcMap ...map[string]interface{})
Template export tpl
func (*Context) ValidParam ¶ added in v0.0.20
ValidParam get and verify routing parameters
func (*Context) ValidQuery ¶ added in v0.0.20
ValidQuery get and verify query
type Engine ¶
type Engine struct { // Log Log Log *zlog.Logger Cache *zcache.Table ShowFavicon bool MaxMultipartMemory int64 BindTag string BindStructDelimiter string BindStructSuffix string // contains filtered or unexported fields }
Engine is a simple HTTP route multiplexer that parses a request path
func (*Engine) Any ¶
func (e *Engine) Any(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) BindStruct ¶ added in v0.1.42
func (e *Engine) BindStruct(prefix string, s interface{}, handle ...HandlerFunc) error
BindStruct Bind Struct
func (*Engine) CONNECT ¶ added in v0.1.64
func (e *Engine) CONNECT(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) CONNECTAndName ¶ added in v0.1.64
func (e *Engine) CONNECTAndName(path string, handle HandlerFunc, routeName string)
func (*Engine) Customize ¶ added in v0.0.19
func (e *Engine) Customize(method, path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) DELETE ¶
func (e *Engine) DELETE(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) DELETEAndName ¶
func (e *Engine) DELETEAndName(path string, handle HandlerFunc, routeName string)
func (*Engine) FindHandle ¶ added in v0.0.19
func (*Engine) GET ¶
func (e *Engine) GET(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) GETAndName ¶
func (e *Engine) GETAndName(path string, handle HandlerFunc, routeName string)
func (*Engine) GenerateURL ¶
func (*Engine) GetMiddleware ¶
func (e *Engine) GetMiddleware() []HandlerFunc
GetMiddleware GetMiddleware
func (*Engine) GetPanicHandler ¶ added in v0.1.37
func (*Engine) HEAD ¶
func (e *Engine) HEAD(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) HEADAndName ¶
func (e *Engine) HEADAndName(path string, handle HandlerFunc, routeName string)
func (*Engine) Handle ¶
func (e *Engine) Handle(method string, path string, handle HandlerFunc, moreHandler ...HandlerFunc)
Handle registers new request handler
func (*Engine) HandleNotFound ¶
func (*Engine) LoadHTMLGlob ¶ added in v1.1.3
LoadHTMLGlob Load Glob HTML
func (*Engine) NewContext ¶ added in v0.1.34
func (*Engine) NotFoundHandler ¶ added in v0.0.26
func (e *Engine) NotFoundHandler(handler HandlerFunc)
func (*Engine) OPTIONS ¶
func (e *Engine) OPTIONS(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) OPTIONSAndName ¶
func (e *Engine) OPTIONSAndName(path string, handle HandlerFunc, routeName string)
func (*Engine) PATCH ¶
func (e *Engine) PATCH(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) PATCHAndName ¶
func (e *Engine) PATCHAndName(path string, handle HandlerFunc, routeName string)
func (*Engine) POST ¶
func (e *Engine) POST(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) POSTAndName ¶
func (e *Engine) POSTAndName(path string, handle HandlerFunc, routeName string)
func (*Engine) PUT ¶
func (e *Engine) PUT(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) PUTAndName ¶
func (e *Engine) PUTAndName(path string, handle HandlerFunc, routeName string)
func (*Engine) PanicHandler ¶
func (*Engine) PreHandler ¶ added in v0.1.53
func (*Engine) SetCustomMethodField ¶
SetCustomMethodField SetCustomMethodField
func (*Engine) SetHTMLTemplate ¶ added in v1.1.10
SetHTMLTemplate Set HTML Template
func (*Engine) SetTemplateFuncMap ¶ added in v1.1.3
SetTemplateFuncMap Set Template Func
func (*Engine) SetTimeout ¶
SetTimeout setTimeout
func (*Engine) StaticFile ¶
func (*Engine) TRACE ¶ added in v0.1.64
func (e *Engine) TRACE(path string, handle HandlerFunc, moreHandler ...HandlerFunc)
func (*Engine) TRACEAndName ¶ added in v0.1.64
func (e *Engine) TRACEAndName(path string, handle HandlerFunc, routeName string)
func (*Engine) Use ¶
func (e *Engine) Use(middleware ...HandlerFunc)
type HandlerFunc ¶
type HandlerFunc func(c *Context)
HandlerFunc HandlerFunc
func Recovery ¶ added in v0.1.37
func Recovery(r *Engine, handler PanicFunc) HandlerFunc
Recovery Recovery
type MiddlewareFunc ¶
type MiddlewareFunc func(c *Context, fn HandlerFunc)
MiddlewareFunc MiddlewareFunc
type MiddlewareType ¶
type MiddlewareType HandlerFunc
MiddlewareType is a public type that is used for middleware
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
Node records any URL params, and executes an end handler.
type Parameters ¶
type Parameters struct {
// contains filtered or unexported fields
}
Parameters records some parameters
type Tree ¶
type Tree struct {
// contains filtered or unexported fields
}
Tree records node
func (*Tree) Add ¶
func (t *Tree) Add(pattern string, handle HandlerFunc, middleware ...HandlerFunc)