Documentation
¶
Index ¶
- func DisableRecordMetrics(ctx Context)
- func DisableTraceLog(ctx Context)
- 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 ¶
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 {
// Query returns the keyed url query value if it exists,
// otherwise it returns an empty string `("")`.
// It is shortcut for `c.Request.URL.Query().Get(key)`
//
// GET /path?id=1234&name=Manu&value=
// c.Query("id") == "1234"
// c.Query("name") == "Manu"
// c.Query("value") == ""
// c.Query("wtf") == ""
Query(key string) (value string)
GetQuery(key string) (string, bool)
GetQueryArray(key string) (values []string, ok bool)
ShouldBind(obj any) error
ShouldBindWith(obj any, b binding.Binding) error
// ShouldBindQuery 反序列化 querystring
// tag: `form:"xxx"` (注:不要写成 query)
ShouldBindQuery(obj interface{}) error
// ShouldBindPostForm 反序列化 postform (querystring会被忽略)
// tag: `form:"xxx"`
ShouldBindPostForm(obj interface{}) error
// ShouldBindForm 同时反序列化 querystring 和 postform;
// 当 querystring 和 postform 存在相同字段时,postform 优先使用。
// tag: `form:"xxx"`
ShouldBindForm(obj interface{}) error
// ShouldBindJSON 反序列化 postjson
// tag: `json:"xxx"`
ShouldBindJSON(obj interface{}) error
// ShouldBindURI 反序列化 path 参数(如路由路径为 /user/:name)
// tag: `uri:"xxx"`
ShouldBindURI(obj interface{}) error
// Redirect 重定向
Redirect(code int, location string)
// Trace 获取 Trace 对象
Trace() Trace
// Logger 获取 Logger 对象
Logger() *zap.Logger
// Payload 正确返回
Payload(payload interface{})
// GraphPayload GraphQL返回值 与 api 返回结构不同
GraphPayload(payload interface{})
// HTML 返回界面
HTML(name string, obj interface{})
// 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
// FormFile returns the first file for the provided form key.
FormFile(name string) (*multipart.FileHeader, error)
// SaveUploadedFile uploads the form file to specific dst.
SaveUploadedFile(file *multipart.FileHeader, dst string) error
// contains filtered or unexported methods
}
type HandlerFunc ¶
type HandlerFunc func(c Context)
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
Click to show internal directories.
Click to hide internal directories.