Documentation
¶
Index ¶
- Constants
- Variables
- func DefaultAutoOPTIONSHandler(ctx Context) error
- func DefaultMethodNotAllowedHandler(ctx Context)
- func DefaultNotFoundHandler(ctx Context)
- func DefaultTimeoutHookHandler(ctx Context)
- func DefaultUniqueIDGenerater() string
- func HTTPNotFound(ctx Context)
- func NewRouter(server *HttpServer) *router
- type BaseMiddleware
- type BaseMiddlware
- type Binder
- type Context
- type ContextCreater
- type DotWeb
- func (app *DotWeb) Cache() cache.Cache
- func (app *DotWeb) Close() error
- func (app *DotWeb) DefaultHTTPErrorHandler(ctx Context, err error)
- func (app *DotWeb) ExcludeUse(m Middleware, routers ...string)
- func (app *DotWeb) GetMiddlewareFunc(name string) (MiddlewareFunc, bool)
- func (app *DotWeb) GlobalUniqueID() string
- func (app *DotWeb) IncludeDotwebGroup()
- func (app *DotWeb) IsDevelopmentMode() bool
- func (app *DotWeb) ListenAndServe(addr string) error
- func (app *DotWeb) Logger() logger.AppLog
- func (app *DotWeb) MustStart()
- func (app *DotWeb) ReSetConfig(config *config.Config)
- func (app *DotWeb) RegisterMiddlewareFunc(name string, middleFunc MiddlewareFunc)
- func (app *DotWeb) RunMode() string
- func (app *DotWeb) SetCache(ca cache.Cache)
- func (app *DotWeb) SetConfig(config *config.Config)
- func (app *DotWeb) SetDevelopmentMode()
- func (app *DotWeb) SetEnabledLog(enabledLog bool)
- func (app *DotWeb) SetExceptionHandle(handler ExceptionHandle)
- func (app *DotWeb) SetLogPath(path string)
- func (app *DotWeb) SetLogger(log logger.AppLog)
- func (app *DotWeb) SetMethodNotAllowedHandle(handler StandardHandle)
- func (app *DotWeb) SetMock(mock Mock)
- func (app *DotWeb) SetNotFoundHandle(handler StandardHandle)
- func (app *DotWeb) SetPProfConfig(enabledPProf bool, httpport int)
- func (app *DotWeb) SetProductionMode()
- func (app *DotWeb) Shutdown(ctx context.Context) error
- func (app *DotWeb) Start() error
- func (app *DotWeb) StartServer(httpPort int) error
- func (app *DotWeb) StateInfo() *core.ServerStateInfo
- func (app *DotWeb) Use(m ...Middleware)
- func (app *DotWeb) UsePlugin(plugins ...Plugin)
- func (app *DotWeb) UseRequestLog()
- func (app *DotWeb) UseTimeoutHook(handler StandardHandle, timeout time.Duration)
- type ExceptionHandle
- type Group
- type HijackConn
- type HttpContext
- func (ctx *HttpContext) AddView(names ...string) []string
- func (ctx *HttpContext) AppItems() core.ConcurrenceMap
- func (ctx *HttpContext) Attachment(file, name string) (err error)
- func (ctx *HttpContext) Bind(i interface{}) error
- func (ctx *HttpContext) BindJsonBody(i interface{}) error
- func (ctx *HttpContext) Cache() cache.Cache
- func (ctx *HttpContext) ConfigSet() core.ReadonlyMap
- func (ctx *HttpContext) Context() context.Context
- func (ctx *HttpContext) DestorySession() error
- func (ctx *HttpContext) End()
- func (ctx *HttpContext) File(file string) (err error)
- func (ctx *HttpContext) FormValue(key string) string
- func (ctx *HttpContext) GetRouterName(key string) string
- func (ctx *HttpContext) Handler() HttpHandle
- func (ctx *HttpContext) Hijack() (*HijackConn, error)
- func (ctx *HttpContext) HijackConn() *HijackConn
- func (ctx *HttpContext) HttpServer() *HttpServer
- func (ctx *HttpContext) Inline(file, name string) (err error)
- func (ctx *HttpContext) IsEnd() bool
- func (ctx *HttpContext) IsHijack() bool
- func (ctx *HttpContext) IsWebSocket() bool
- func (ctx *HttpContext) Items() core.ConcurrenceMap
- func (ctx *HttpContext) PostFormValue(key string) string
- func (ctx *HttpContext) QueryInt(key string) int
- func (ctx *HttpContext) QueryInt64(key string) int64
- func (ctx *HttpContext) QueryString(key string) string
- func (ctx *HttpContext) ReadCookie(name string) (*http.Cookie, error)
- func (ctx *HttpContext) ReadCookieValue(name string) (string, error)
- func (ctx *HttpContext) Redirect(code int, targetUrl string) error
- func (ctx *HttpContext) RemoteIP() string
- func (ctx *HttpContext) RemoveCookie(name string)
- func (ctx *HttpContext) Request() *Request
- func (ctx *HttpContext) Response() *Response
- func (ctx *HttpContext) RouterNode() RouterNode
- func (ctx *HttpContext) RouterParams() Params
- func (ctx *HttpContext) Session() (state *session.SessionState)
- func (ctx *HttpContext) SessionID() string
- func (ctx *HttpContext) SetCookie(cookie *http.Cookie)
- func (ctx *HttpContext) SetCookieValue(name, value string, maxAge int)
- func (ctx *HttpContext) SetTimeoutContext(timeout time.Duration) context.Context
- func (ctx *HttpContext) Tools() *Tools
- func (ctx *HttpContext) Validate(i interface{}) error
- func (ctx *HttpContext) View(name string) error
- func (ctx *HttpContext) ViewC(code int, name string) error
- func (ctx *HttpContext) ViewData() core.ConcurrenceMap
- func (ctx *HttpContext) WebSocket() *WebSocket
- func (ctx *HttpContext) WithContext(runCtx context.Context)
- func (ctx *HttpContext) Write(code int, content []byte) (int, error)
- func (ctx *HttpContext) WriteBlob(contentType string, b []byte) error
- func (ctx *HttpContext) WriteBlobC(code int, contentType string, b []byte) error
- func (ctx *HttpContext) WriteHtml(contents ...interface{}) error
- func (ctx *HttpContext) WriteHtmlC(code int, contents ...interface{}) error
- func (ctx *HttpContext) WriteJson(i interface{}) error
- func (ctx *HttpContext) WriteJsonBlob(b []byte) error
- func (ctx *HttpContext) WriteJsonBlobC(code int, b []byte) error
- func (ctx *HttpContext) WriteJsonC(code int, i interface{}) error
- func (ctx *HttpContext) WriteJsonp(callback string, i interface{}) error
- func (ctx *HttpContext) WriteJsonpBlob(callback string, b []byte) error
- func (ctx *HttpContext) WriteString(contents ...interface{}) error
- func (ctx *HttpContext) WriteStringC(code int, contents ...interface{}) error
- type HttpHandle
- type HttpModule
- type HttpServer
- func (server *HttpServer) Any(path string, handle HttpHandle)
- func (server *HttpServer) Binder() Binder
- func (server *HttpServer) DELETE(path string, handle HttpHandle) RouterNode
- func (server *HttpServer) GET(path string, handle HttpHandle) RouterNode
- func (server *HttpServer) GetSessionManager() *session.SessionManager
- func (server *HttpServer) Group(prefix string) Group
- func (server *HttpServer) HEAD(path string, handle HttpHandle) RouterNode
- func (server *HttpServer) HiJack(path string, handle HttpHandle)
- func (server *HttpServer) IndexPage() string
- func (server *HttpServer) InitSessionManager()
- func (server *HttpServer) IsOffline() bool
- func (server *HttpServer) ListenAndServe(addr string) error
- func (server *HttpServer) ListenAndServeTLS(addr string, certFile, keyFile string) error
- func (server *HttpServer) Logger() logger.AppLog
- func (server *HttpServer) OPTIONS(path string, handle HttpHandle) RouterNode
- func (server *HttpServer) PATCH(path string, handle HttpHandle) RouterNode
- func (server *HttpServer) POST(path string, handle HttpHandle) RouterNode
- func (server *HttpServer) PUT(path string, handle HttpHandle) RouterNode
- func (server *HttpServer) RegisterHandlerFunc(routeMethod string, path string, handler http.HandlerFunc) RouterNode
- func (server *HttpServer) RegisterModule(module *HttpModule)
- func (server *HttpServer) RegisterRoute(routeMethod string, path string, handle HttpHandle) RouterNode
- func (server *HttpServer) RegisterServerFile(routeMethod string, path string, fileRoot string, excludeExtension []string) RouterNode
- func (server *HttpServer) Renderer() Renderer
- func (server *HttpServer) Router() Router
- func (server *HttpServer) ServeHTTP(w http.ResponseWriter, req *http.Request)
- func (server *HttpServer) ServerConfig() *config.ServerNode
- func (server *HttpServer) ServerFile(path string, fileRoot string) RouterNode
- func (server *HttpServer) SessionConfig() *config.SessionNode
- func (server *HttpServer) SetBinder(binder Binder)
- func (server *HttpServer) SetContextCreater(creater ContextCreater)
- func (server *HttpServer) SetEnabledAutoHEAD(isEnabled bool)
- func (server *HttpServer) SetEnabledAutoOPTIONS(isEnabled bool)
- func (server *HttpServer) SetEnabledBindUseJsonTag(isEnabled bool)
- func (server *HttpServer) SetEnabledDetailRequestData(isEnabled bool)
- func (server *HttpServer) SetEnabledGzip(isEnabled bool)
- func (server *HttpServer) SetEnabledIgnoreFavicon(isEnabled bool)
- func (server *HttpServer) SetEnabledListDir(isEnabled bool)
- func (server *HttpServer) SetEnabledRequestID(isEnabled bool)
- func (server *HttpServer) SetEnabledSession(isEnabled bool)
- func (server *HttpServer) SetEnabledStaticFileMiddleware(isEnabled bool)
- func (server *HttpServer) SetEnabledTLS(isEnabled bool, certFile, keyFile string)
- func (server *HttpServer) SetIdleTimeout(idleTimeout int64)
- func (server *HttpServer) SetIndexPage(indexPage string)
- func (server *HttpServer) SetMaxBodySize(maxBodySize int64)
- func (server *HttpServer) SetOffline(offline bool, offlineText string, offlineUrl string)
- func (server *HttpServer) SetReadHeaderTimeout(readHeaderTimeout int64)
- func (server *HttpServer) SetReadTimeout(readTimeout int64)
- func (server *HttpServer) SetRenderer(r Renderer)
- func (server *HttpServer) SetSessionConfig(storeConfig *session.StoreConfig)
- func (server *HttpServer) SetVirtualPath(path string)
- func (server *HttpServer) SetWriteTimeout(writeTimeout int64)
- func (server *HttpServer) StateInfo() *core.ServerStateInfo
- func (server *HttpServer) VirtualPath() string
- func (server *HttpServer) WebSocket(path string, handle HttpHandle)
- type IdGenerate
- type LogJson
- type Middleware
- type MiddlewareFunc
- type Mock
- type MockHandle
- type Node
- type NotifyPlugin
- type Param
- type Params
- type Plugin
- type Renderer
- type Request
- func (req *Request) ContentType() string
- func (req *Request) ExistsQueryKey(key string) bool
- func (req *Request) FormFile(key string) (*UploadFile, error)
- func (req *Request) FormFiles() (map[string]*UploadFile, error)
- func (req *Request) FormValues() map[string][]string
- func (req *Request) FullRemoteIP() string
- func (req *Request) IsAJAX() bool
- func (req *Request) Path() string
- func (req *Request) PostBody() []byte
- func (req *Request) PostString(key string) string
- func (req *Request) PostValues() map[string][]string
- func (req *Request) QueryHeader(key string) string
- func (req *Request) QueryString(key string) string
- func (req *Request) QueryStrings() url.Values
- func (req *Request) RawQuery() string
- func (req *Request) RealIP() string
- func (req *Request) RemoteIP() string
- func (req *Request) RequestID() string
- func (req *Request) Url() string
- type RequestLogMiddleware
- type Response
- func (r *Response) Body() []byte
- func (r *Response) BodyString() string
- func (r *Response) End()
- func (r *Response) Flush()
- func (r *Response) Header() http.Header
- func (r *Response) Hijack() (net.Conn, *bufio.ReadWriter, error)
- func (r *Response) HttpCode() int
- func (r *Response) Push(target string, opts *http.PushOptions) error
- func (r *Response) QueryHeader(key string) string
- func (r *Response) Redirect(code int, targetUrl string) error
- func (r *Response) SetContentType(contenttype string)
- func (r *Response) SetHeader(key, val string)
- func (r *Response) SetStatusCode(code int) error
- func (r *Response) SetWriter(w http.ResponseWriter) *Response
- func (r *Response) Write(code int, b []byte) (n int, err error)
- func (r *Response) WriteHeader(code int) error
- func (r *Response) Writer() http.ResponseWriter
- type Router
- type RouterHandle
- type RouterNode
- type StandardHandle
- type StandardMock
- func (m *StandardMock) CheckNeedMock(ctx Context) bool
- func (m *StandardMock) Do(ctx Context)
- func (m *StandardMock) Register(route string, handler MockHandle)
- func (m *StandardMock) RegisterJSON(route string, resData interface{})
- func (m *StandardMock) RegisterString(route string, resData interface{})
- type TimeoutHookMiddleware
- type Tools
- type UploadFile
- type Validator
- type ValueNode
- type WebSocket
Constants ¶
const ( LogTarget_Default = "dotweb_default" LogTarget_HttpRequest = "dotweb_request" LogTarget_HttpServer = "dotweb_server" LogTarget_RequestTimeout = "dotweb_req_timeout" LogLevel_Debug = "debug" LogLevel_Info = "info" LogLevel_Warn = "warn" LogLevel_Error = "error" )
Log define
const ( CharsetUTF8 = "charset=utf-8" DefaultServerName = "dotweb" )
Http define
const ( Windows = "windows" Linux = "linux" )
const ( MIMEApplicationJSON = "application/json" MIMEApplicationJSONCharsetUTF8 = MIMEApplicationJSON + "; " + CharsetUTF8 MIMEApplicationJavaScript = "application/javascript" MIMEApplicationJavaScriptCharsetUTF8 = MIMEApplicationJavaScript + "; " + CharsetUTF8 MIMEApplicationXML = "application/xml" MIMEApplicationXMLCharsetUTF8 = MIMEApplicationXML + "; " + CharsetUTF8 MIMEApplicationForm = "application/x-www-form-urlencoded" MIMEApplicationProtobuf = "application/protobuf" MIMEApplicationMsgpack = "application/msgpack" MIMETextHTML = "text/html" MIMETextHTMLCharsetUTF8 = MIMETextHTML + "; " + CharsetUTF8 MIMETextPlain = "text/plain" MIMETextPlainCharsetUTF8 = MIMETextPlain + "; " + CharsetUTF8 MIMEMultipartForm = "multipart/form-data" MIMEOctetStream = "application/octet-stream" )
MIME types
const ( HeaderAcceptEncoding = "Accept-Encoding" HeaderAllow = "Allow" HeaderAuthorization = "Authorization" HeaderContentDisposition = "Content-Disposition" HeaderContentEncoding = "Content-Encoding" HeaderContentLength = "Content-Length" HeaderContentType = "Content-Type" HeaderCookie = "Cookie" HeaderSetCookie = "Set-Cookie" HeaderIfModifiedSince = "If-Modified-Since" HeaderLastModified = "Last-Modified" HeaderLocation = "Location" HeaderUpgrade = "Upgrade" HeaderVary = "Vary" HeaderWWWAuthenticate = "WWW-Authenticate" HeaderXRequestedWith = "X-Requested-With" HeaderXForwardedProto = "X-Forwarded-Proto" HeaderXHTTPMethodOverride = "X-HTTP-Method-Override" HeaderXForwardedFor = "X-Forwarded-For" HeaderXRealIP = "X-Real-IP" HeaderServer = "Server" HeaderOrigin = "Origin" HeaderAccessControlRequestMethod = "Access-Control-Request-Method" HeaderAccessControlRequestHeaders = "Access-Control-Request-Headers" HeaderAccessControlAllowOrigin = "Access-Control-Allow-Origin" HeaderAccessControlAllowMethods = "Access-Control-Allow-Methods" HeaderAccessControlAllowHeaders = "Access-Control-Allow-Headers" HeaderAccessControlAllowCredentials = "Access-Control-Allow-Credentials" HeaderAccessControlExposeHeaders = "Access-Control-Expose-Headers" HeaderAccessControlMaxAge = "Access-Control-Max-Age" HeaderP3P = "P3P" HeaderCacheControl = "Cache-control" // Security HeaderStrictTransportSecurity = "Strict-Transport-Security" HeaderXContentTypeOptions = "X-Content-Type-Options" HeaderXXSSProtection = "X-XSS-Protection" HeaderXFrameOptions = "X-Frame-Options" HeaderContentSecurityPolicy = "Content-Security-Policy" HeaderXCSRFToken = "X-CSRF-Token" )
Headers
const ( HeaderRequestID = "d_request_id" HeaderResponseTime = "d_response_time" )
const ( // ItemKeyHandleStartTime itemkey name for request handler start time ItemKeyHandleStartTime = "dotweb.HttpContext.StartTime" // ItemKeyHandleDuration itemkey name for request handler time duration ItemKeyHandleDuration = "dotweb.HttpContext.HandleDuration" )
const ( // DefaultHTTPPort default http port; fixed for #70 UPDATE default http port 80 to 8080 DefaultHTTPPort = 8080 DefaultLogPath = "" // RunMode_Development app runmode in development mode RunMode_Development = "development" // RunMode_Production app runmode in production mode RunMode_Production = "production" // StartMode_New app startmode in New mode StartMode_New = "New" // StartMode_Classic app startmode in Classic mode StartMode_Classic = "Classic" )
const ( RouteMethod_Any = "ANY" RouteMethod_GET = "GET" RouteMethod_HEAD = "HEAD" RouteMethod_OPTIONS = "OPTIONS" RouteMethod_POST = "POST" RouteMethod_PUT = "PUT" RouteMethod_PATCH = "PATCH" RouteMethod_DELETE = "DELETE" RouteMethod_HiJack = "HIJACK" RouteMethod_WebSocket = "WEBSOCKET" )
const ( DefaultGzipLevel = 9 DefaultIndexPage = "index.html" )
const (
// Version current version
Version = "1.7.21"
)
Global define
Variables ¶
var ( // ErrValidatorNotRegistered error for not register Validator ErrValidatorNotRegistered = errors.New("validator not registered") // ErrNotFound error for not found file ErrNotFound = errors.New("not found file") )
var (
HttpMethodMap map[string]string
)
Functions ¶
func DefaultAutoOPTIONSHandler ¶
DefaultAutoOPTIONSHandler default handler for options request if set HttpServer.EnabledAutoOPTIONS, auto bind this handler
func DefaultMethodNotAllowedHandler ¶
func DefaultMethodNotAllowedHandler(ctx Context)
DefaultMethodNotAllowedHandler default exception handler
func DefaultNotFoundHandler ¶
func DefaultNotFoundHandler(ctx Context)
DefaultNotFoundHandler default exception handler
func DefaultTimeoutHookHandler ¶
func DefaultTimeoutHookHandler(ctx Context)
func DefaultUniqueIDGenerater ¶
func DefaultUniqueIDGenerater() string
DefaultUniqueIDGenerater default generater used to create Unique Id
func HTTPNotFound ¶
func HTTPNotFound(ctx Context)
HTTPNotFound simple notfound function for Context
func NewRouter ¶
func NewRouter(server *HttpServer) *router
New returns a new initialized Router. Path auto-correction, including trailing slashes, is enabled by default.
Types ¶
type BaseMiddleware ¶ added in v1.7.2
type BaseMiddleware struct {
// contains filtered or unexported fields
}
BaseMiddleware is the base struct, user defined middleware should extend this
func (*BaseMiddleware) Exclude ¶ added in v1.7.2
func (bm *BaseMiddleware) Exclude(routers ...string)
Exclude Exclude this middleware with router
func (*BaseMiddleware) ExistsExcludeRouter ¶ added in v1.7.2
func (bm *BaseMiddleware) ExistsExcludeRouter(router string) bool
ExistsExcludeRouter check is exists router in exclude map
func (*BaseMiddleware) HasExclude ¶ added in v1.7.2
func (bm *BaseMiddleware) HasExclude() bool
HasExclude check has set exclude router
func (*BaseMiddleware) Next ¶ added in v1.7.2
func (bm *BaseMiddleware) Next(ctx Context) error
func (*BaseMiddleware) SetNext ¶ added in v1.7.2
func (bm *BaseMiddleware) SetNext(m Middleware)
type BaseMiddlware ¶
type BaseMiddlware struct {
BaseMiddleware
}
BaseMiddlware is a shortcut for BaseMiddleware Deprecated: 由于该struct命名有误,将在2.0版本弃用,请大家尽快修改自己的middleware
type Context ¶
type Context interface { Context() context.Context SetTimeoutContext(timeout time.Duration) context.Context WithContext(runCtx context.Context) HttpServer() *HttpServer Response() *Response Request() *Request WebSocket() *WebSocket HijackConn() *HijackConn RouterNode() RouterNode RouterParams() Params Handler() HttpHandle Tools() *Tools AppItems() core.ConcurrenceMap Cache() cache.Cache Items() core.ConcurrenceMap ConfigSet() core.ReadonlyMap ViewData() core.ConcurrenceMap SessionID() string Session() (state *session.SessionState) DestorySession() error Hijack() (*HijackConn, error) IsHijack() bool IsWebSocket() bool End() IsEnd() bool Redirect(code int, targetUrl string) error QueryString(key string) string QueryInt(key string) int QueryInt64(key string) int64 FormValue(key string) string PostFormValue(key string) string File(file string) (err error) Attachment(file string, name string) error Inline(file string, name string) error Bind(i interface{}) error BindJsonBody(i interface{}) error // Validate validates provided `i`. It is usually called after `Context#Bind()`. Validate(i interface{}) error GetRouterName(key string) string RemoteIP() string SetCookieValue(name, value string, maxAge int) SetCookie(cookie *http.Cookie) RemoveCookie(name string) ReadCookieValue(name string) (string, error) ReadCookie(name string) (*http.Cookie, error) AddView(name ...string) []string View(name string) error ViewC(code int, name string) error Write(code int, content []byte) (int, error) WriteString(contents ...interface{}) error WriteStringC(code int, contents ...interface{}) error WriteHtml(contents ...interface{}) error WriteHtmlC(code int, contents ...interface{}) error WriteBlob(contentType string, b []byte) error WriteBlobC(code int, contentType string, b []byte) error WriteJson(i interface{}) error WriteJsonC(code int, i interface{}) error WriteJsonBlob(b []byte) error WriteJsonBlobC(code int, b []byte) error WriteJsonp(callback string, i interface{}) error WriteJsonpBlob(callback string, b []byte) error // contains filtered or unexported methods }
type ContextCreater ¶ added in v1.7.16
type ContextCreater func() Context
type DotWeb ¶
type DotWeb struct { HttpServer *HttpServer Config *config.Config Mock Mock Middlewares []Middleware ExceptionHandler ExceptionHandle NotFoundHandler StandardHandle // NotFoundHandler supports user defined 404 handler MethodNotAllowedHandler StandardHandle // MethodNotAllowedHandler fixed for #64 supports user defined MethodNotAllowed handler Items core.ConcurrenceMap StartMode string IDGenerater IdGenerate // contains filtered or unexported fields }
func Classic ¶
Classic create and return DotApp instance\ if set logPath = "", it will use bin-root/logs for log-root 1.SetEnabledLog(true) 2.use RequestLog Middleware 3.print logo
func ClassicWithConf ¶
ClassicWithConf create and return DotApp instance must set config info
func New ¶
func New() *DotWeb
New create and return DotApp instance default run mode is RunMode_Production
func (*DotWeb) Close ¶
Close immediately stops the server. It internally calls `http.Server#Close()`.
func (*DotWeb) DefaultHTTPErrorHandler ¶
DefaultHTTPErrorHandler default exception handler
func (*DotWeb) ExcludeUse ¶
func (app *DotWeb) ExcludeUse(m Middleware, routers ...string)
ExcludeUse registers a middleware exclude routers like exclude /index or /query/:id
func (*DotWeb) GetMiddlewareFunc ¶
func (app *DotWeb) GetMiddlewareFunc(name string) (MiddlewareFunc, bool)
GetMiddlewareFunc get middleware with given name
func (*DotWeb) GlobalUniqueID ¶
GlobalUniqueID return app's GlobalUniqueID it will be Initializationed when StartServer
func (*DotWeb) IncludeDotwebGroup ¶
func (app *DotWeb) IncludeDotwebGroup()
IncludeDotwebGroup init inner routers which start with /dotweb/
func (*DotWeb) IsDevelopmentMode ¶
IsDevelopmentMode check current run mode is development mode
func (*DotWeb) ListenAndServe ¶
ListenAndServe start server with addr not support pprof server auto start
func (*DotWeb) MustStart ¶
func (app *DotWeb) MustStart()
MustStart start app server with set config If an exception occurs, will be panic it if no set Server.Port, will be use DefaultHttpPort
func (*DotWeb) ReSetConfig ¶ added in v1.7.2
ReSetConfig reset config for app only apply when app is running Port can not be modify if EnabledPProf, EnabledPProf flag and PProfPort can not be modify
func (*DotWeb) RegisterMiddlewareFunc ¶
func (app *DotWeb) RegisterMiddlewareFunc(name string, middleFunc MiddlewareFunc)
RegisterMiddlewareFunc register middleware with given name & middleware
func (*DotWeb) SetDevelopmentMode ¶
func (app *DotWeb) SetDevelopmentMode()
SetDevelopmentMode set run mode on development mode 1.SetEnabledLog(true) 2.SetEnabledConsole(true)
func (*DotWeb) SetEnabledLog ¶
SetEnabledLog set enabled log flag
func (*DotWeb) SetExceptionHandle ¶
func (app *DotWeb) SetExceptionHandle(handler ExceptionHandle)
SetExceptionHandle set custom error handler
func (*DotWeb) SetLogger ¶
SetLogger set user logger, the logger must implement logger.AppLog interface
func (*DotWeb) SetMethodNotAllowedHandle ¶
func (app *DotWeb) SetMethodNotAllowedHandle(handler StandardHandle)
SetMethodNotAllowedHandle set custom 405 handler
func (*DotWeb) SetNotFoundHandle ¶
func (app *DotWeb) SetNotFoundHandle(handler StandardHandle)
SetNotFoundHandle set custom 404 handler
func (*DotWeb) SetPProfConfig ¶
SetPProfConfig set pprofserver config, default is disable and don't use same port with StartServer
func (*DotWeb) SetProductionMode ¶
func (app *DotWeb) SetProductionMode()
SetProductionMode set run mode on production mode
func (*DotWeb) Shutdown ¶
Shutdown stops server gracefully. It internally calls `http.Server#Shutdown()`.
func (*DotWeb) Start ¶
Start start app server with set config If an exception occurs, will be return it if no set Server.Port, will be use DefaultHttpPort
func (*DotWeb) StartServer ¶
StartServer start server with http port if config the pprof, will be start pprof server
func (*DotWeb) StateInfo ¶
func (app *DotWeb) StateInfo() *core.ServerStateInfo
StateInfo return app's ServerStateInfo
func (*DotWeb) UseRequestLog ¶
func (app *DotWeb) UseRequestLog()
UseRequestLog register RequestLogMiddleware
func (*DotWeb) UseTimeoutHook ¶
func (app *DotWeb) UseTimeoutHook(handler StandardHandle, timeout time.Duration)
UseTimeoutHook register TimeoutHookMiddleware
type ExceptionHandle ¶
ExceptionHandle supports exception handling
type Group ¶
type Group interface { Use(m ...Middleware) Group Group(prefix string, m ...Middleware) Group DELETE(path string, h HttpHandle) RouterNode GET(path string, h HttpHandle) RouterNode HEAD(path string, h HttpHandle) RouterNode OPTIONS(path string, h HttpHandle) RouterNode PATCH(path string, h HttpHandle) RouterNode POST(path string, h HttpHandle) RouterNode PUT(path string, h HttpHandle) RouterNode ServerFile(path string, fileroot string) RouterNode RegisterRoute(method, path string, h HttpHandle) RouterNode }
func NewGroup ¶
func NewGroup(prefix string, server *HttpServer) Group
type HijackConn ¶
type HijackConn struct { ReadWriter *bufio.ReadWriter Conn net.Conn // contains filtered or unexported fields }
hijack conn
func (*HijackConn) SetHeader ¶
func (hj *HijackConn) SetHeader(key, value string)
SetHeader hjiack conn write header
func (*HijackConn) WriteBlob ¶
func (hj *HijackConn) WriteBlob(p []byte) (size int, err error)
WriteBlob hjiack conn write []byte
func (*HijackConn) WriteString ¶
func (hj *HijackConn) WriteString(content string) (int, error)
WriteString hjiack conn write string
type HttpContext ¶
type HttpContext struct {
// contains filtered or unexported fields
}
func (*HttpContext) AddView ¶
func (ctx *HttpContext) AddView(names ...string) []string
AddView add need parse views before View()
func (*HttpContext) AppItems ¶
func (ctx *HttpContext) AppItems() core.ConcurrenceMap
AppContext get application's global appcontext issue #3
func (*HttpContext) Attachment ¶
func (ctx *HttpContext) Attachment(file, name string) (err error)
Attachment sends a response as attachment, prompting client to save the file. for issue #39
func (*HttpContext) Bind ¶
func (ctx *HttpContext) Bind(i interface{}) error
Bind decode req.Body or form-value to struct
func (*HttpContext) BindJsonBody ¶
func (ctx *HttpContext) BindJsonBody(i interface{}) error
BindJsonBody default use json decode req.Body to struct
func (*HttpContext) Cache ¶
func (ctx *HttpContext) Cache() cache.Cache
Cache get application's global cache
func (*HttpContext) ConfigSet ¶
func (ctx *HttpContext) ConfigSet() core.ReadonlyMap
ConfigSet get appset from config file update for issue #16 Config file
func (*HttpContext) Context ¶
func (ctx *HttpContext) Context() context.Context
Context return context.Context
func (*HttpContext) DestorySession ¶ added in v1.7.21
func (ctx *HttpContext) DestorySession() error
DestorySession delete all contents of the session and set the sessionId to empty
func (*HttpContext) End ¶
func (ctx *HttpContext) End()
End set context user handler process end if set HttpContext.End,ignore user handler, but exec all http module - fixed issue #5
func (*HttpContext) File ¶
func (ctx *HttpContext) File(file string) (err error)
File sends a response with the content of the file if file not exists, response 404 for issue #39
func (*HttpContext) FormValue ¶
func (ctx *HttpContext) FormValue(key string) string
FormValue returns the first value for the named component of the query. POST and PUT body parameters take precedence over URL query string values.
func (*HttpContext) GetRouterName ¶
func (ctx *HttpContext) GetRouterName(key string) string
GetRouterName get router name
func (*HttpContext) Handler ¶
func (ctx *HttpContext) Handler() HttpHandle
func (*HttpContext) Hijack ¶
func (ctx *HttpContext) Hijack() (*HijackConn, error)
Hijack make current connection to hijack mode
func (*HttpContext) HijackConn ¶
func (ctx *HttpContext) HijackConn() *HijackConn
func (*HttpContext) HttpServer ¶
func (ctx *HttpContext) HttpServer() *HttpServer
HttpServer return HttpServer
func (*HttpContext) Inline ¶
func (ctx *HttpContext) Inline(file, name string) (err error)
Inline sends a response as inline, opening the file in the browser. if file not exists, response 404 for issue #39
func (*HttpContext) IsEnd ¶
func (ctx *HttpContext) IsEnd() bool
func (*HttpContext) IsHijack ¶
func (ctx *HttpContext) IsHijack() bool
func (*HttpContext) IsWebSocket ¶
func (ctx *HttpContext) IsWebSocket() bool
func (*HttpContext) Items ¶
func (ctx *HttpContext) Items() core.ConcurrenceMap
Items get request's item context lazy init when first use
func (*HttpContext) PostFormValue ¶
func (ctx *HttpContext) PostFormValue(key string) string
PostFormValue returns the first value for the named component of the POST, PATCH, or PUT request body. URL query parameters are ignored.
func (*HttpContext) QueryInt ¶
func (ctx *HttpContext) QueryInt(key string) int
QueryInt get query key with int format if not exists or not int type, return 0
func (*HttpContext) QueryInt64 ¶
func (ctx *HttpContext) QueryInt64(key string) int64
QueryInt64 get query key with int64 format if not exists or not int64 type, return 0
func (*HttpContext) QueryString ¶
func (ctx *HttpContext) QueryString(key string) string
QueryString returns request parameters according to key
func (*HttpContext) ReadCookie ¶
func (ctx *HttpContext) ReadCookie(name string) (*http.Cookie, error)
ReadCookie read cookie object for name
func (*HttpContext) ReadCookieValue ¶
func (ctx *HttpContext) ReadCookieValue(name string) (string, error)
ReadCookieValue read cookie value for name
func (*HttpContext) Redirect ¶
func (ctx *HttpContext) Redirect(code int, targetUrl string) error
Redirect replies to the request with a redirect to url and with httpcode default you can use http.StatusFound
func (*HttpContext) RemoteIP ¶
func (ctx *HttpContext) RemoteIP() string
RemoteIP return user IP address
func (*HttpContext) RemoveCookie ¶
func (ctx *HttpContext) RemoveCookie(name string)
RemoveCookie remove cookie for path&name
func (*HttpContext) Request ¶
func (ctx *HttpContext) Request() *Request
func (*HttpContext) Response ¶
func (ctx *HttpContext) Response() *Response
func (*HttpContext) RouterNode ¶
func (ctx *HttpContext) RouterNode() RouterNode
func (*HttpContext) RouterParams ¶
func (ctx *HttpContext) RouterParams() Params
func (*HttpContext) Session ¶
func (ctx *HttpContext) Session() (state *session.SessionState)
Session get session state in current context
func (*HttpContext) SessionID ¶
func (ctx *HttpContext) SessionID() string
func (*HttpContext) SetCookie ¶
func (ctx *HttpContext) SetCookie(cookie *http.Cookie)
SetCookie write cookie with cookie-obj
func (*HttpContext) SetCookieValue ¶
func (ctx *HttpContext) SetCookieValue(name, value string, maxAge int)
SetCookieValue write cookie for name & value & maxAge default path = "/" default domain = current domain default maxAge = 0 // seconds seconds=0 means no 'Max-Age' attribute specified. seconds<0 means delete cookie now, equivalently 'Max-Age: 0' seconds>0 means Max-Age attribute present and given in seconds
func (*HttpContext) SetTimeoutContext ¶
func (ctx *HttpContext) SetTimeoutContext(timeout time.Duration) context.Context
SetTimeoutContext set new Timeout Context set Context & cancle withvalue RequestID
func (*HttpContext) Tools ¶ added in v1.7.11
func (ctx *HttpContext) Tools() *Tools
Tools get tools lazy init when first use
func (*HttpContext) Validate ¶
func (ctx *HttpContext) Validate(i interface{}) error
Validate validates data with HttpServer::Validator We will implementing inner validator on next version
func (*HttpContext) View ¶
func (ctx *HttpContext) View(name string) error
View write view content to response
func (*HttpContext) ViewC ¶
func (ctx *HttpContext) ViewC(code int, name string) error
ViewC write (httpCode, view content) to response
func (*HttpContext) ViewData ¶
func (ctx *HttpContext) ViewData() core.ConcurrenceMap
ViewData get view data context lazy init when first use
func (*HttpContext) WebSocket ¶
func (ctx *HttpContext) WebSocket() *WebSocket
func (*HttpContext) WithContext ¶
func (ctx *HttpContext) WithContext(runCtx context.Context)
WithContext set Context with RequestID
func (*HttpContext) Write ¶
func (ctx *HttpContext) Write(code int, content []byte) (int, error)
Write write code and content content to response
func (*HttpContext) WriteBlob ¶
func (ctx *HttpContext) WriteBlob(contentType string, b []byte) error
WriteBlob write []byte content to response
func (*HttpContext) WriteBlobC ¶
func (ctx *HttpContext) WriteBlobC(code int, contentType string, b []byte) error
WriteBlobC write (httpCode, []byte) to response
func (*HttpContext) WriteHtml ¶
func (ctx *HttpContext) WriteHtml(contents ...interface{}) error
WriteString write (200, string, text/html) to response
func (*HttpContext) WriteHtmlC ¶
func (ctx *HttpContext) WriteHtmlC(code int, contents ...interface{}) error
WriteHtmlC write (httpCode, string, text/html) to response
func (*HttpContext) WriteJson ¶
func (ctx *HttpContext) WriteJson(i interface{}) error
WriteJson write (httpCode, json string) to response auto convert interface{} to json string
func (*HttpContext) WriteJsonBlob ¶
func (ctx *HttpContext) WriteJsonBlob(b []byte) error
WriteJsonBlob write json []byte to response
func (*HttpContext) WriteJsonBlobC ¶
func (ctx *HttpContext) WriteJsonBlobC(code int, b []byte) error
WriteJsonBlobC write (httpCode, json []byte) to response
func (*HttpContext) WriteJsonC ¶
func (ctx *HttpContext) WriteJsonC(code int, i interface{}) error
WriteJsonC write (httpCode, json string) to response auto convert interface{} to json string
func (*HttpContext) WriteJsonp ¶
func (ctx *HttpContext) WriteJsonp(callback string, i interface{}) error
WriteJsonp write jsonp string to response
func (*HttpContext) WriteJsonpBlob ¶
func (ctx *HttpContext) WriteJsonpBlob(callback string, b []byte) error
WriteJsonpBlob write jsonp string as []byte to response
func (*HttpContext) WriteString ¶
func (ctx *HttpContext) WriteString(contents ...interface{}) error
WriteString write (200, string, text/plain) to response
func (*HttpContext) WriteStringC ¶
func (ctx *HttpContext) WriteStringC(code int, contents ...interface{}) error
WriteStringC write (httpCode, string, text/plain) to response
type HttpHandle ¶
HttpHandle is a function that can be registered to a route to handle HTTP requests. Like http.HandlerFunc, but has a special parameter Context contain all request and response data.
type HttpModule ¶
type HttpModule struct { Name string // OnBeginRequest is the first event in the execution chain OnBeginRequest func(Context) // OnEndRequest is the last event in the execution chain OnEndRequest func(Context) }
HttpModule global module in http server it will be no effect when websocket request or use offline mode
type HttpServer ¶
type HttpServer struct { Modules []*HttpModule DotApp *DotWeb Validator Validator // contains filtered or unexported fields }
func NewHttpServer ¶
func NewHttpServer() *HttpServer
func (*HttpServer) Any ¶
func (server *HttpServer) Any(path string, handle HttpHandle)
ANY is a shortcut for router.Handle("Any", path, handle) it support GET\HEAD\POST\PUT\PATCH\OPTIONS\DELETE
func (*HttpServer) Binder ¶
func (server *HttpServer) Binder() Binder
Binder get binder interface in server
func (*HttpServer) DELETE ¶
func (server *HttpServer) DELETE(path string, handle HttpHandle) RouterNode
DELETE is a shortcut for router.Handle("DELETE", path, handle)
func (*HttpServer) GET ¶
func (server *HttpServer) GET(path string, handle HttpHandle) RouterNode
GET is a shortcut for router.Handle("GET", path, handle)
func (*HttpServer) GetSessionManager ¶
func (server *HttpServer) GetSessionManager() *session.SessionManager
GetSessionManager get session manager in current httpserver
func (*HttpServer) Group ¶
func (server *HttpServer) Group(prefix string) Group
Group create new group with current HttpServer
func (*HttpServer) HEAD ¶
func (server *HttpServer) HEAD(path string, handle HttpHandle) RouterNode
HEAD is a shortcut for router.Handle("HEAD", path, handle)
func (*HttpServer) HiJack ¶
func (server *HttpServer) HiJack(path string, handle HttpHandle)
HiJack is a shortcut for router.HiJack(path, handle)
func (*HttpServer) IndexPage ¶
func (server *HttpServer) IndexPage() string
IndexPage default index page name
func (*HttpServer) InitSessionManager ¶
func (server *HttpServer) InitSessionManager()
InitSessionManager init session manager
func (*HttpServer) IsOffline ¶
func (server *HttpServer) IsOffline() bool
IsOffline check server is set offline state
func (*HttpServer) ListenAndServe ¶
func (server *HttpServer) ListenAndServe(addr string) error
ListenAndServe listens on the TCP network address srv.Addr and then calls Serve to handle requests on incoming connections.
func (*HttpServer) ListenAndServeTLS ¶
func (server *HttpServer) ListenAndServeTLS(addr string, certFile, keyFile string) error
ListenAndServeTLS listens on the TCP network address srv.Addr and then calls Serve to handle requests on incoming TLS connections. Accepted connections are configured to enable TCP keep-alives.
Filenames containing a certificate and matching private key for the server must be provided if neither the Server's TLSConfig.Certificates nor TLSConfig.GetCertificate are populated. If the certificate is signed by a certificate authority, the certFile should be the concatenation of the server's certificate, any intermediates, and the CA's certificate.
If srv.Addr is blank, ":https" is used.
ListenAndServeTLS always returns a non-nil error.
func (*HttpServer) Logger ¶
func (server *HttpServer) Logger() logger.AppLog
Logger is a shortcut for dotweb.Logger
func (*HttpServer) OPTIONS ¶
func (server *HttpServer) OPTIONS(path string, handle HttpHandle) RouterNode
OPTIONS is a shortcut for router.Handle("OPTIONS", path, handle)
func (*HttpServer) PATCH ¶
func (server *HttpServer) PATCH(path string, handle HttpHandle) RouterNode
PATCH is a shortcut for router.Handle("PATCH", path, handle)
func (*HttpServer) POST ¶
func (server *HttpServer) POST(path string, handle HttpHandle) RouterNode
POST is a shortcut for router.Handle("POST", path, handle)
func (*HttpServer) PUT ¶
func (server *HttpServer) PUT(path string, handle HttpHandle) RouterNode
PUT is a shortcut for router.Handle("PUT", path, handle)
func (*HttpServer) RegisterHandlerFunc ¶ added in v1.7.5
func (server *HttpServer) RegisterHandlerFunc(routeMethod string, path string, handler http.HandlerFunc) RouterNode
RegisterHandlerFunc a shortcut for router.RegisterHandlerFunc(routeMethod string, path string, handler http.HandlerFunc)
func (*HttpServer) RegisterModule ¶
func (server *HttpServer) RegisterModule(module *HttpModule)
RegisterModule add HttpModule
func (*HttpServer) RegisterRoute ¶ added in v1.7.5
func (server *HttpServer) RegisterRoute(routeMethod string, path string, handle HttpHandle) RouterNode
RegisterRoute a shortcut for router.RegisterRoute(routeMethod string, path string,handle HttpHandle)
func (*HttpServer) RegisterServerFile ¶
func (server *HttpServer) RegisterServerFile(routeMethod string, path string, fileRoot string, excludeExtension []string) RouterNode
RegisterServerFile a shortcut for router.RegisterServerFile(routeMethod, path, fileRoot) simple demo:server.RegisterServerFile(RouteMethod_GET, "/src/*", "/var/www", nil) simple demo:server.RegisterServerFile(RouteMethod_GET, "/src/*filepath", "/var/www", []string{".zip", ".rar"})
func (*HttpServer) Renderer ¶
func (server *HttpServer) Renderer() Renderer
Renderer get renderer interface in server if no set, init InnerRenderer
func (*HttpServer) Router ¶
func (server *HttpServer) Router() Router
Router get router interface in server
func (*HttpServer) ServeHTTP ¶
func (server *HttpServer) ServeHTTP(w http.ResponseWriter, req *http.Request)
ServeHTTP make sure request can be handled correctly
func (*HttpServer) ServerConfig ¶
func (server *HttpServer) ServerConfig() *config.ServerNode
ServerConfig a shortcut for App.Config.ServerConfig
func (*HttpServer) ServerFile ¶
func (server *HttpServer) ServerFile(path string, fileRoot string) RouterNode
ServerFile a shortcut for router.ServeFiles(path, fileRoot) simple demo:server.ServerFile("/src/*filepath", "/var/www")
func (*HttpServer) SessionConfig ¶
func (server *HttpServer) SessionConfig() *config.SessionNode
SessionConfig a shortcut for App.Config.SessionConfig
func (*HttpServer) SetBinder ¶
func (server *HttpServer) SetBinder(binder Binder)
SetBinder set custom Binder on HttpServer
func (*HttpServer) SetContextCreater ¶ added in v1.7.16
func (server *HttpServer) SetContextCreater(creater ContextCreater)
SetContextCreater
func (*HttpServer) SetEnabledAutoHEAD ¶
func (server *HttpServer) SetEnabledAutoHEAD(isEnabled bool)
SetEnabledAutoHEAD set route use auto head set EnabledAutoHEAD true or false default is false
func (*HttpServer) SetEnabledAutoOPTIONS ¶
func (server *HttpServer) SetEnabledAutoOPTIONS(isEnabled bool)
SetEnabledAutoOPTIONS set route use auto options set SetEnabledAutoOPTIONS true or false default is false
func (*HttpServer) SetEnabledBindUseJsonTag ¶
func (server *HttpServer) SetEnabledBindUseJsonTag(isEnabled bool)
SetEnabledBindUseJsonTag set whethr to enable json tab on Bind, default is false
func (*HttpServer) SetEnabledDetailRequestData ¶
func (server *HttpServer) SetEnabledDetailRequestData(isEnabled bool)
SetEnabledDetailRequestData 设置是否启用详细请求数据统计,默认为false
func (*HttpServer) SetEnabledGzip ¶
func (server *HttpServer) SetEnabledGzip(isEnabled bool)
SetEnabledGzip set whether to enable gzip, default is false
func (*HttpServer) SetEnabledIgnoreFavicon ¶
func (server *HttpServer) SetEnabledIgnoreFavicon(isEnabled bool)
SetEnabledIgnoreFavicon set IgnoreFavicon Enabled default is false
func (*HttpServer) SetEnabledListDir ¶
func (server *HttpServer) SetEnabledListDir(isEnabled bool)
SetEnabledListDir set whether to allow listing of directories, default is false
func (*HttpServer) SetEnabledRequestID ¶
func (server *HttpServer) SetEnabledRequestID(isEnabled bool)
SetEnabledRequestID set create unique request id per request set EnabledRequestID true or false default is false
func (*HttpServer) SetEnabledSession ¶
func (server *HttpServer) SetEnabledSession(isEnabled bool)
SetEnabledSession set whether to enable session, default is false
func (*HttpServer) SetEnabledStaticFileMiddleware ¶
func (server *HttpServer) SetEnabledStaticFileMiddleware(isEnabled bool)
SetEnabledStaticFileMiddleware set flag which enabled or disabled middleware for static-file route
func (*HttpServer) SetEnabledTLS ¶
func (server *HttpServer) SetEnabledTLS(isEnabled bool, certFile, keyFile string)
SetEnabledTLS set tls enabled default is false if it's true, must input certificate\private key fileName
func (*HttpServer) SetIdleTimeout ¶ added in v1.7.19
func (server *HttpServer) SetIdleTimeout(idleTimeout int64)
SetIdleTimeout IdleTimeout is the maximum amount of time to wait for the next request when keep-alives are enabled with Millisecond
func (*HttpServer) SetIndexPage ¶
func (server *HttpServer) SetIndexPage(indexPage string)
SetIndexPage set default index page name
func (*HttpServer) SetMaxBodySize ¶ added in v1.7.3
func (server *HttpServer) SetMaxBodySize(maxBodySize int64)
SetMaxBodySize set body size to limit read
func (*HttpServer) SetOffline ¶
func (server *HttpServer) SetOffline(offline bool, offlineText string, offlineUrl string)
SetOffline set server offline config
func (*HttpServer) SetReadHeaderTimeout ¶ added in v1.7.19
func (server *HttpServer) SetReadHeaderTimeout(readHeaderTimeout int64)
SetReadHeaderTimeout ReadHeaderTimeout is the amount of time allowed to read request headers with Millisecond
func (*HttpServer) SetReadTimeout ¶ added in v1.7.19
func (server *HttpServer) SetReadTimeout(readTimeout int64)
SetReadTimeout To limit the request's body size to be read with Millisecond
func (*HttpServer) SetRenderer ¶
func (server *HttpServer) SetRenderer(r Renderer)
SetRenderer set custom renderer in server
func (*HttpServer) SetSessionConfig ¶
func (server *HttpServer) SetSessionConfig(storeConfig *session.StoreConfig)
SetSessionConfig set session store config
func (*HttpServer) SetVirtualPath ¶
func (server *HttpServer) SetVirtualPath(path string)
SetVirtualPath set current server's VirtualPath
func (*HttpServer) SetWriteTimeout ¶ added in v1.7.19
func (server *HttpServer) SetWriteTimeout(writeTimeout int64)
SetWriteTimeout WriteTimeout is the maximum duration before timing out writes of the response with Millisecond
func (*HttpServer) StateInfo ¶
func (server *HttpServer) StateInfo() *core.ServerStateInfo
StateInfo is a shortcut for dotweb.StateInfo
func (*HttpServer) VirtualPath ¶
func (server *HttpServer) VirtualPath() string
VirtualPath return current server's VirtualPath
func (*HttpServer) WebSocket ¶
func (server *HttpServer) WebSocket(path string, handle HttpHandle)
WebSocket is a shortcut for router.WebSocket(path, handle)
type IdGenerate ¶
type IdGenerate func() string
IdGenerater the handler for create Unique Id default is use dotweb.
type Middleware ¶
type Middleware interface { Handle(ctx Context) error SetNext(m Middleware) Next(ctx Context) error Exclude(routers ...string) HasExclude() bool ExistsExcludeRouter(router string) bool }
middleware execution priority: app > group > router Middleware middleware interface
type MiddlewareFunc ¶
type MiddlewareFunc func() Middleware
type Mock ¶
type Mock interface { // Register register MockHandle on route Register(route string, handler MockHandle) // RegisterString register return mock string on route RegisterString(route string, resData interface{}) // RegisterJSON register return mock json on route RegisterJSON(route string, resData interface{}) // CheckNeedMock check is need do mock logic CheckNeedMock(Context) bool // Do do mock logic Do(Context) }
Mock the define Mock module
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
func (*Node) AppMiddlewares ¶
func (n *Node) AppMiddlewares() []Middleware
AppMiddlewares return AppMiddlewares
func (*Node) GroupMiddlewares ¶
func (n *Node) GroupMiddlewares() []Middleware
GroupMiddlewares return GroupMiddlewares
type NotifyPlugin ¶ added in v1.7.2
type NotifyPlugin struct { Root string LoopTime int ModTimes map[string]time.Time // contains filtered or unexported fields }
func NewDefaultNotifyPlugin ¶ added in v1.7.2
func NewDefaultNotifyPlugin(app *DotWeb) *NotifyPlugin
NewDefaultNotifyPlugin return new NotifyPlugin with default config
func (*NotifyPlugin) IsValidate ¶ added in v1.7.2
func (p *NotifyPlugin) IsValidate() bool
func (*NotifyPlugin) Name ¶ added in v1.7.2
func (p *NotifyPlugin) Name() string
func (*NotifyPlugin) Run ¶ added in v1.7.2
func (p *NotifyPlugin) Run() error
type Params ¶
type Params []Param
Params is a Param-slice, as returned by the router. The slice is ordered, the first URL parameter is also the first slice value. It is therefore safe to read values by the index.
type Renderer ¶
type Renderer interface { SetTemplatePath(path string) Render(io.Writer, interface{}, Context, ...string) error RegisterTemplateFunc(string, interface{}) }
Renderer is the interface that wraps the render method.
func NewInnerRenderer ¶
func NewInnerRenderer() Renderer
NewInnerRenderer create a inner renderer instance
func NewInnerRendererNoCache ¶
func NewInnerRendererNoCache() Renderer
NewInnerRendererNoCache create a inner renderer instance with no cache mode
type Request ¶
func (*Request) ExistsQueryKey ¶ added in v1.7.10
ExistsQueryKey check is exists from query params with the given key.
func (*Request) FormFile ¶
func (req *Request) FormFile(key string) (*UploadFile, error)
FormFile get file by form key
func (*Request) FormFiles ¶
func (req *Request) FormFiles() (map[string]*UploadFile, error)
FormFiles get multi files fixed #92
func (*Request) FormValues ¶
FormValues including both the URL field's query parameters and the POST or PUT form data
func (*Request) FullRemoteIP ¶
FullRemoteIP RemoteAddr to an "IP:port" address
func (*Request) Path ¶
Path returns requested path.
The path is valid until returning from RequestHandler.
func (*Request) PostString ¶
PostString returns the first value for the named component of the POST or PUT request body. URL query parameters are ignored. Deprecated: Use the PostFormValue instead
func (*Request) PostValues ¶
PostValues contains the parsed form data from POST, PATCH, or PUT body parameters
func (*Request) QueryHeader ¶
QueryHeader query header value by key
func (*Request) QueryString ¶
QueryString returns the first value associated with the given key.
func (*Request) QueryStrings ¶
QueryStrings parses RawQuery and returns the corresponding values.
func (*Request) RealIP ¶
RealIP returns the first ip from 'X-Forwarded-For' or 'X-Real-IP' header key if not exists data, returns request.RemoteAddr fixed for #164
type RequestLogMiddleware ¶
type RequestLogMiddleware struct {
BaseMiddleware
}
func (*RequestLogMiddleware) Handle ¶
func (m *RequestLogMiddleware) Handle(ctx Context) error
type Response ¶
func NewResponse ¶
func NewResponse(w http.ResponseWriter) (r *Response)
func (*Response) BodyString ¶
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) Hijack ¶
Hijack implements the http.Hijacker interface to allow an HTTP handler to take over the connection. See https://golang.org/pkg/net/http/#Hijacker
func (*Response) Push ¶
func (r *Response) Push(target string, opts *http.PushOptions) error
Push support http2 Push
func (*Response) QueryHeader ¶
func (*Response) SetContentType ¶
func (*Response) SetStatusCode ¶
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.
func (*Response) Writer ¶
func (r *Response) Writer() http.ResponseWriter
type Router ¶
type Router interface { ServeHTTP(ctx Context) ServerFile(path string, fileRoot string) RouterNode RegisterServerFile(routeMethod string, path string, fileRoot string, excludeExtension []string) RouterNode GET(path string, handle HttpHandle) RouterNode HEAD(path string, handle HttpHandle) RouterNode OPTIONS(path string, handle HttpHandle) RouterNode POST(path string, handle HttpHandle) RouterNode PUT(path string, handle HttpHandle) RouterNode PATCH(path string, handle HttpHandle) RouterNode DELETE(path string, handle HttpHandle) RouterNode HiJack(path string, handle HttpHandle) WebSocket(path string, handle HttpHandle) Any(path string, handle HttpHandle) RegisterHandlerFunc(routeMethod string, path string, handler http.HandlerFunc) RouterNode RegisterRoute(routeMethod string, path string, handle HttpHandle) RouterNode RegisterHandler(name string, handler HttpHandle) GetHandler(name string) (HttpHandle, bool) MatchPath(ctx Context, routePath string) bool GetAllRouterExpress() map[string]struct{} }
Router is the interface that wraps the router method.
type RouterHandle ¶
type RouterHandle func(ctx Context)
Handle is a function that can be registered to a route to handle HTTP requests. Like http.HandlerFunc, but has a third parameter for the values of wildcards (variables).
type RouterNode ¶
type RouterNode interface { Use(m ...Middleware) *Node AppMiddlewares() []Middleware GroupMiddlewares() []Middleware Middlewares() []Middleware Path() string Node() *Node }
type StandardHandle ¶
type StandardHandle func(Context)
StandardHandle for standard request handling
type StandardMock ¶
type StandardMock struct {
// contains filtered or unexported fields
}
StandardMock standard mock implement for Mock interface
func (*StandardMock) CheckNeedMock ¶
func (m *StandardMock) CheckNeedMock(ctx Context) bool
CheckNeedMock check is need do mock logic
func (*StandardMock) Register ¶
func (m *StandardMock) Register(route string, handler MockHandle)
Register register MockHandle on route
func (*StandardMock) RegisterJSON ¶
func (m *StandardMock) RegisterJSON(route string, resData interface{})
RegisterJSON register return mock json on route
func (*StandardMock) RegisterString ¶
func (m *StandardMock) RegisterString(route string, resData interface{})
RegisterString register return mock string on route
type TimeoutHookMiddleware ¶
type TimeoutHookMiddleware struct { BaseMiddleware HookHandle StandardHandle TimeoutDuration time.Duration }
func (*TimeoutHookMiddleware) Handle ¶
func (m *TimeoutHookMiddleware) Handle(ctx Context) error
type UploadFile ¶
type UploadFile struct { File multipart.File Header *multipart.FileHeader // contains filtered or unexported fields }
func NewUploadFile ¶
func NewUploadFile(file multipart.File, header *multipart.FileHeader) *UploadFile
func (*UploadFile) FileName ¶
func (f *UploadFile) FileName() string
FileName get upload file client-local name
func (*UploadFile) GetFileExt ¶
func (f *UploadFile) GetFileExt() string
GetFileExt get upload file extensions
func (*UploadFile) RandomFileName ¶
func (f *UploadFile) RandomFileName() string
RandomFileName get upload file random name with uuid
func (*UploadFile) ReadBytes ¶
func (f *UploadFile) ReadBytes() []byte
ReadBytes Bytes returns a slice of byte hoding the UploadFile.File special: if you read bytes, it's will cause empty data in UploadFile.File, so you use SaveFile will no any data to save
type Validator ¶
type Validator interface {
Validate(i interface{}) error
}
Validator is the interface that wraps the Validate function.
type WebSocket ¶
func (*WebSocket) ReadMessage ¶
ReadMessage read message from websocket.conn
func (*WebSocket) SendMessage ¶
SendMessage send message from websocket.conn