Documentation ¶
Overview ¶
Package core @program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-03 14:42
Package core @program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-02 21:38
Package core @program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-02 21:35
Package core
@program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-03 17:28 @description: 跨域请求处理
Package core @program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-03 17:42
Package core
@program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-03 17:31 @description: 恢复panic
Package core @program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-19 16:14
Package core
@program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-03 17:34 @description: 链路追踪
Package core
@program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-03 14:36 @description: 多路复用器
Package core @program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-03 14:40
Package core @program: gin-template @author: [lliuhuan](https://github.com/lliuhuan) @create: 2024-07-02 21:29
Index ¶
- func DisableRecordMetrics(ctx Context)
- func DisableTraceLog(ctx Context)
- func MiddlewareCors() gin.HandlerFunc
- func MiddlewareLimit() gin.HandlerFunc
- func MiddlewareRecover(logger *zap.Logger) gin.HandlerFunc
- func MiddlewareTls(logger *zap.Logger) gin.HandlerFunc
- func MiddlewareTrace(logger *zap.Logger, opt *option) gin.HandlerFunc
- type BusinessError
- type Context
- type HandlerFunc
- type IRoutes
- type Mux
- type Option
- func WithAlertNotify(notifyHandler proposal.NotifyHandler) Option
- func WithDisablePProf() Option
- func WithDisablePrometheus() Option
- func WithDisableSwagger() Option
- func WithEnableCors() Option
- func WithEnableOpenBrowser(uri string) Option
- func WithEnableRate() Option
- func WithRecordMetrics(recordHandler proposal.RecordHandler) Option
- type RouterGroup
- type StdContext
- type Trace
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MiddlewareLimit ¶
func MiddlewareLimit() gin.HandlerFunc
func MiddlewareRecover ¶
func MiddlewareRecover(logger *zap.Logger) gin.HandlerFunc
func MiddlewareTls ¶
func MiddlewareTls(logger *zap.Logger) gin.HandlerFunc
func MiddlewareTrace ¶
func MiddlewareTrace(logger *zap.Logger, opt *option) gin.HandlerFunc
Types ¶
type BusinessError ¶
type BusinessError interface { // WithError 设置错误信息 WithError(err error) BusinessError // WithAlert 设置告警通知 WithAlert() BusinessError // BusinessCode 获取业务码 BusinessCode() int // HTTPCode 获取 HTTP 状态码 HTTPCode() int // Message 获取错误描述 Message() string // StackError 获取带堆栈的错误信息 StackError() error // IsAlert 是否开启告警通知 IsAlert() bool // contains filtered or unexported methods }
func Error ¶
func Error(httpCode, businessCode int, message string) BusinessError
type Context ¶
type Context interface { // ShouldBindQuery 反序列化 querystring // tag: `form:"xxx"` (注:不要写成 query) ShouldBindQuery(obj any) error // ShouldBindPostForm 反序列化 postform (querystring会被忽略) // tag: `form:"xxx"` ShouldBindPostForm(obj any) error // ShouldBindForm 同时反序列化 querystring 和 postform; // 当 querystring 和 postform 存在相同字段时,postform 优先使用。 // tag: `form:"xxx"` ShouldBindForm(obj any) error // FormFile 获取上传文件 FormFile(key string) (multipart.File, *multipart.FileHeader, error) // ShouldBindJSON 反序列化 postjson // tag: `json:"xxx"` ShouldBindJSON(obj any) error // ShouldBindURI 反序列化 path 参数(如路由路径为 /user/:name) // tag: `uri:"xxx"` ShouldBindURI(obj any) error ShouldBind(obj any) error // Redirect 重定向 Redirect(code int, location string) // Trace 获取 Trace 对象 Trace() Trace // Logger 获取 Logger 对象 Logger() *zap.Logger // Payload 正确返回 Payload(payload any) // GraphPayload GraphQL返回值 与 api 返回结构不同 GraphPayload(payload any) // HTML 返回界面 HTML(name string, obj any) // AbortWithError 错误返回 AbortWithError(err BusinessError) // Header 获取 Header 对象 Header() http.Header // GetHeader 获取 Header GetHeader(key string) string // SetHeader 设置 Header SetHeader(key, value string) // SessionUserInfo 当前用户信息 SessionUserInfo() proposal.SessionUserInfo // Alias 设置路由别名 for metrics path Alias() string // RequestInputParams 获取所有参数 RequestInputParams() url.Values // RequestPostFormParams 获取 PostForm 参数 RequestPostFormParams() url.Values // Request 获取 Request 对象 Request() *http.Request // RawData 获取 Request.Body RawData() []byte // Method 获取 Request.Method Method() string // Host 获取 Request.Host Host() string // Path 获取 请求的路径 Request.URL.Path (不附带 querystring) Path() string // URI 获取 unescape 后的 Request.URL.RequestURI() URI() string // RequestContext 获取请求的 context (当 client 关闭后,会自动 canceled) RequestContext() StdContext // ResponseWriter 获取 ResponseWriter 对象 ResponseWriter() gin.ResponseWriter GetCtx() *gin.Context // contains filtered or unexported methods }
Context 规范接口
type HandlerFunc ¶
type HandlerFunc func(c Context)
HandlerFunc 处理方法
func AliasForRecordMetrics ¶
func AliasForRecordMetrics(path string) HandlerFunc
AliasForRecordMetrics 对请求路径起个别名,用于记录指标。 如:Get /user/:username 这样的路径,因为 username 会有非常多的情况,这样记录指标非常不友好。
func WrapAuthHandler ¶
func WrapAuthHandler(handler func(Context) (sessionUserInfo proposal.SessionUserInfo, err BusinessError)) HandlerFunc
WrapAuthHandler 用来处理 Auth 的入口
type IRoutes ¶
type IRoutes interface { Any(string, ...HandlerFunc) GET(string, ...HandlerFunc) POST(string, ...HandlerFunc) DELETE(string, ...HandlerFunc) PATCH(string, ...HandlerFunc) PUT(string, ...HandlerFunc) OPTIONS(string, ...HandlerFunc) HEAD(string, ...HandlerFunc) }
IRoutes 包装gin的IRoutes
type Mux ¶
type Mux interface { http.Handler Group(relativePath string, handlers ...HandlerFunc) RouterGroup }
Mux http mux
type Option ¶
type Option func(*option)
func WithAlertNotify ¶
func WithAlertNotify(notifyHandler proposal.NotifyHandler) Option
WithAlertNotify 设置告警通知
func WithEnableOpenBrowser ¶
WithEnableOpenBrowser 启动后在浏览器中打开 uri
func WithRecordMetrics ¶
func WithRecordMetrics(recordHandler proposal.RecordHandler) Option
WithRecordMetrics 设置记录接口指标
type RouterGroup ¶
type RouterGroup interface { Group(string, ...HandlerFunc) RouterGroup IRoutes }
RouterGroup 包装gin的RouterGroup