Documentation
¶
Index ¶
- Constants
- func NewApiHandler(r Request, f ApiHandlerFunc, ms ...ApiMiddleware) gin.HandlerFunc
- func NewHandler(f HandlerFunc) gin.HandlerFunc
- func NewPageHandler(v *View, t string, r Request, f PageHandlerFunc, ms ...PageMiddleware) gin.HandlerFunc
- func NewRequest(r Request) interface{}
- func RegisterPageInitFunc(f PageInitFunc)
- func RequestParams(c *gin.Context) interface{}
- func UseApiMiddleware(ms ...ApiMiddleware)
- func UseApiResponser(r ApiResponser)
- func UseLogger(l log.Logger)
- func UsePageMiddleware(ms ...PageMiddleware)
- func Wait(releaseFunc func())
- type ApiError
- type ApiHandlerFunc
- type ApiMiddleware
- type ApiResponser
- type Bucket
- func (b *Bucket) AddBucket(b1 bucketer)
- func (b *Bucket) AddBuckets(bs []bucketer)
- func (b *Bucket) AddHandler(h Handler)
- func (b *Bucket) AddHandlers(hs []Handler)
- func (b *Bucket) Group(relativePath string, handlers ...gin.HandlerFunc) *gin.RouterGroup
- func (b *Bucket) Register()
- func (b *Bucket) UseMiddlewares(ms ...gin.HandlerFunc)
- type DefaultApiResponser
- type HTTPServer
- func (s *HTTPServer) GinEngine() *gin.Engine
- func (s *HTTPServer) PostInit(f ServerHookFunc)
- func (s *HTTPServer) PostStop(f ServerHookFunc)
- func (s *HTTPServer) PreStop(f ServerHookFunc)
- func (s *HTTPServer) Run() error
- func (s *HTTPServer) Runnable() bool
- func (s *HTTPServer) Start() (bool, error)
- func (s *HTTPServer) Stop()
- func (s *HTTPServer) Wait()
- type Handler
- type HandlerFunc
- type Page
- func (p *Page) AddData(k string, d interface{})
- func (p *Page) AddError(e error)
- func (p *Page) BatchAddData(d map[string]interface{})
- func (p *Page) ContentType() string
- func (p *Page) HasError() bool
- func (p *Page) SetData(d map[string]interface{})
- func (p *Page) SetTitle(t string)
- func (p *Page) Show() error
- func (p *Page) ShowDirect()
- func (p *Page) ShowDirectWithError(e interface{})
- func (p *Page) ShowWithError(e interface{}) error
- type PageError
- type PageHandlerFunc
- type PageInitFunc
- type PageMiddleware
- type Request
- type Response
- type ServerHookFunc
- type ServerOptions
- type ValidatableRequest
- type View
- func (view *View) AddTplFiles(files ...string)
- func (view *View) ContainsString(arr []string, s string) bool
- func (view *View) Render(w http.ResponseWriter, f string, v interface{}) error
- func (view *View) RenderDirect(w http.ResponseWriter, name string, files []string, v interface{}) error
- func (view *View) RenderPage(w http.ResponseWriter, p *Page) error
- func (view *View) ResetTplFiles()
- func (view *View) SetFuncMap(m template.FuncMap)
- func (view *View) SetTplDir(d string)
- func (view *View) SetTplExtension(ext string)
- func (view *View) Show(w http.ResponseWriter, p *Page)
- func (view *View) ShowDirect(w http.ResponseWriter, p *Page) error
- type ViewOption
Constants ¶
const ( ModeTest = "test" ModeDebug = "debug" ModeRelease = "release" )
define gin run mode constant
Variables ¶
This section is empty.
Functions ¶
func NewApiHandler ¶
func NewApiHandler(r Request, f ApiHandlerFunc, ms ...ApiMiddleware) gin.HandlerFunc
NewApiHandler create a new gin.HandlerFunc
func NewHandler ¶
func NewHandler(f HandlerFunc) gin.HandlerFunc
NewHandler create a new gin.HandlerFunc, with no request, it's often been used to wrap a middleware
func NewPageHandler ¶
func NewPageHandler(v *View, t string, r Request, f PageHandlerFunc, ms ...PageMiddleware) gin.HandlerFunc
NewPageHandler 创建一个页面处理方法 t - template of current page r - request f - handler func ms - middleware list, allow empty
func NewRequest ¶
func NewRequest(r Request) interface{}
NewRequest create a new request by the given request
func RegisterPageInitFunc ¶
func RegisterPageInitFunc(f PageInitFunc)
func RequestParams ¶
RequestParams get current request content 此方法用于在日志记录时获取请求内容
func UseApiMiddleware ¶
func UseApiMiddleware(ms ...ApiMiddleware)
UseApiMiddleware register global api middlewares
func UseApiResponser ¶
func UseApiResponser(r ApiResponser)
UseApiResponser register a customized responser
func UsePageMiddleware ¶
func UsePageMiddleware(ms ...PageMiddleware)
UsePageMiddleware register global page middlewares
Types ¶
type ApiError ¶
ApiError the error should return an extra code that indicate which kind of error it is
type ApiHandlerFunc ¶
ApiHandlerFunc the logic to handle the api request
type ApiMiddleware ¶
type ApiMiddleware func(ApiHandlerFunc) ApiHandlerFunc
ApiMiddleware add middleware support to each single handler
type ApiResponser ¶
type ApiResponser interface { // Response a common response Response(c *gin.Context, code int, v interface{}) // Success show a success response Success(c *gin.Context, v interface{}) // Fail show a fail response Fail(c *gin.Context, v interface{}) }
ApiResponser a responser was used to show request result to client
type Bucket ¶
type Bucket struct {
// contains filtered or unexported fields
}
Bucket a bucket is a group of apis, like *gin.RouterGroup
func NewBucket ¶
func NewBucket(r *gin.RouterGroup, handlers ...Handler) *Bucket
NewBucket create a new bucket
func (*Bucket) AddBuckets ¶
func (b *Bucket) AddBuckets(bs []bucketer)
func (*Bucket) AddHandler ¶
func (*Bucket) AddHandlers ¶
func (*Bucket) Group ¶
func (b *Bucket) Group(relativePath string, handlers ...gin.HandlerFunc) *gin.RouterGroup
func (*Bucket) UseMiddlewares ¶
func (b *Bucket) UseMiddlewares(ms ...gin.HandlerFunc)
type DefaultApiResponser ¶
type DefaultApiResponser struct{}
DefaultApiResponser a default responser implements responser interface
func (DefaultApiResponser) Fail ¶
func (r DefaultApiResponser) Fail(c *gin.Context, v interface{})
func (DefaultApiResponser) Response ¶
func (r DefaultApiResponser) Response(c *gin.Context, code int, v interface{})
func (DefaultApiResponser) Success ¶
func (r DefaultApiResponser) Success(c *gin.Context, v interface{})
type HTTPServer ¶
type HTTPServer struct {
// contains filtered or unexported fields
}
HTTPServer define a simple http server
func (*HTTPServer) GinEngine ¶
func (s *HTTPServer) GinEngine() *gin.Engine
func (*HTTPServer) PostInit ¶
func (s *HTTPServer) PostInit(f ServerHookFunc)
func (*HTTPServer) PostStop ¶
func (s *HTTPServer) PostStop(f ServerHookFunc)
func (*HTTPServer) PreStop ¶
func (s *HTTPServer) PreStop(f ServerHookFunc)
func (*HTTPServer) Runnable ¶
func (s *HTTPServer) Runnable() bool
Runnable check whether server is runnable
func (*HTTPServer) Start ¶
func (s *HTTPServer) Start() (bool, error)
Start start http server in non-blocked mode
type Handler ¶
type Handler interface { // RegisterRoute register route internally RegisterRoute(g *gin.RouterGroup) }
Handler a group of apis, support auto register routes to gin.RouterGroup
type HandlerFunc ¶
HandlerFunc the logic to handle the api request
type Page ¶
type Page struct { Ctx *gin.Context Request Request // 页面请求数据 Params url.Values // 请求参数列表 Tpl string `json:"tpl"` // 定义模板 Title string `json:"title"` // 页面标题 Data map[string]interface{} `json:"data"` // 页面数据,可能会向用户展示 Sess map[string]interface{} `json:"Sess"` // 保存会话数据,用于服务端业务处理,不对用户展示 Errors []*PageError `json:"errors"` // 错误列表 // contains filtered or unexported fields }
Page 定义一个页面数据
func NewPageWithData ¶
NewPageWithData 创建一个Page对象,并初始化数据
func (*Page) BatchAddData ¶
BatchAddData 批量添加数据
func (*Page) ShowDirectWithError ¶
func (p *Page) ShowDirectWithError(e interface{})
ShowDirectWithError 显示页面内容
func (*Page) ShowWithError ¶
ShowWithError 将错误添加进页面并显示
type PageHandlerFunc ¶
PageHandlerFunc the logic to handle the page request
type PageInitFunc ¶
type PageInitFunc func() map[string]interface{}
PageInitFunc 定义一个页面初始化方法,返回map[string]interface{},返回的数据将放到页面的会话数据(Page.Session)中
type PageMiddleware ¶
type PageMiddleware func(PageHandlerFunc) PageHandlerFunc
PageMiddleware add middleware support to each single handler
type ServerHookFunc ¶
ServerHookFunc http server init & stop hooks
type ServerOptions ¶
type ServerOptions struct { Port int `json:"port" yaml:"port" toml:"port"` // 服务端口 Mode string `json:"mode" yaml:"mode" toml:"mode"` // 运行模式, debug or release Tls bool `json:"tls" yaml:"tls" toml:"tls"` // 是否启用HTTPS CertFile string `json:"cert_file" yaml:"cert_file" toml:"cert_file"` // 证书文件 KeyFile string `json:"key_file" yaml:"key_file" toml:"key_file"` // 密钥文件 }
ServerOptions http server run options
func DefaultServerOptions ¶
func DefaultServerOptions() *ServerOptions
DefaultServerOptions create a default options
type ValidatableRequest ¶
type ValidatableRequest interface {
Validate() error
}
ValidatableRequest a request should be validated by call it's Validate function manually
type View ¶
type View struct {
// contains filtered or unexported fields
}
func (*View) ContainsString ¶
ContainsString 检查字符串列表是否包含某个值
func (*View) Render ¶
func (view *View) Render(w http.ResponseWriter, f string, v interface{}) error
Render 渲染文件
func (*View) RenderDirect ¶
func (view *View) RenderDirect(w http.ResponseWriter, name string, files []string, v interface{}) error
RenderDirect 直接渲染指定的文件
func (*View) RenderPage ¶
func (view *View) RenderPage(w http.ResponseWriter, p *Page) error
RenderPage 根据Page信息渲染页面
func (*View) SetTplExtension ¶
SetTplExtension 设置模板文件扩展名
func (*View) ShowDirect ¶
func (view *View) ShowDirect(w http.ResponseWriter, p *Page) error
ShowDirect 根据Page信息渲染页面
type ViewOption ¶
type ViewOption func(*View)
ViewOption option for view
func WithTplDir ¶
func WithTplDir(d string) ViewOption
func WithTplExtension ¶
func WithTplExtension(ext string) ViewOption
func WithTplFiles ¶
func WithTplFiles(f ...string) ViewOption