Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Context ¶
type Context interface { // 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参数(如路由路径为 /userinfo/:name) // tag: `uri:"xxx"` ShouldBindURI(obj interface{}) error // Method 请求的method Method() string // Host 请求的host Host() string // Path 请求的路径(不附带querystring) Path() string // URI unescape后的uri URI() string // ContentType 请求的ContentType ContentType() string // Header clone一份请求的header Header() http.Header // Data 自定义返回数据 Data(code int, contentType string, data []byte) // Redirect 重定向 Redirect(code int, location string) // RequestContext 获取请求的context(当client关闭后,会自动canceled) RequestContext() stdctx.Context // FormFile 获取第一个出现的上传文件 FormFile(name string) (*multipart.FileHeader, error) // GetHeader 从request中读取header GetHeader(key string) string // WriteHeader 向response中写入header WriteHeader(key, value string) // Param 获取path参数(如路由路径为 /userinfo/:name) // 推荐使用ShouldBindURI Param(key string) string // GetQuery 获取querystring参数 // 推荐使用ShouldBindQuery GetQuery(key string) (string, bool) // GetPostForm 获取postform参数 // 推荐使用ShouldBindPostForm GetPostForm(key string) (string, bool) // RawData 返回request.body RawData() []byte // Session 返回session对象 Session() interface{} // Cookie 获取cookie Cookie(name string) (*http.Cookie, error) // SetCookie 回写cookie SetCookie(cookie *http.Cookie) error // GetPayload 获取payload(可以是最终返回的payload,也可以是上一个handler处理后的payload) GetPayload() interface{} // SetPayload 设置payload(可以是最终返回的payload,也可以是本次处理、传递给下一个handler的payload) SetPayload(payload interface{}) // Journal 获取内部流转信息对象 Journal() Journal // Logger 获取日志实例 Logger() *zap.Logger // AbortWithError 终止并处理错误 AbortWithError(err Error) Alias() string // contains filtered or unexported methods }
Context 上下文、支持方法包装
type Error ¶
type Error interface { error // WithHTTPCode 设置返回的http code WithHTTPCode(httpCode int) Error // WithErr 设置真实发生的err,推荐使用github.com/pkg/errors包装一下stack信息,便于快速定位err发生的真实位置。 WithErr(err error) Error // String 返回JSON格式的错误详情 String() string // contains filtered or unexported methods }
Error 包含返回码、描述语、错误的包装类
type HandlerFunc ¶
type HandlerFunc func(Context)
HandlerFunc 逻辑处理handler定义
func AliasForRecordMetrics ¶
func AliasForRecordMetrics(path string) HandlerFunc
AliasForRecordMetrics 对请求uri起个别名,用于prometheus记录指标。 如:Get /userinfo/:username 这样的uri,因为username会有非常多的情况,这样记录prometheus指标会非常的不有好。
func WrapSessionHandler ¶
func WrapSessionHandler(handler func(Context) (session interface{}, err error)) HandlerFunc
WrapSessionHandler 用来处理session或token的入口,在之后的handler中只需ctx.Session()即可。 如果handler内部出现错误,推荐返回rest.Error类型的错误以便自定义提示语,否则将默认返回"Internal Server Error"。
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) Static(relativePath, root string) StaticFS(relativePath string, fs http.FileSystem) }
IRoutes 包装gin的IRoutes
type Mux ¶
type Mux interface { http.Handler Group(relativePath string, handlers ...HandlerFunc) RouterGroup }
Mux http mux
type OnPanicNotify ¶
OnPanicNotify 发生panic时通知用
type Option ¶
type Option func(*option)
Option 自定义选项
func WithDisableproPrometheus ¶
func WithDisableproPrometheus() Option
WithDisableproPrometheus 禁用prometheus
func WithMarshalJournal ¶ added in v1.2.6
func WithMarshalJournal() Option
WithMarshalJournal marshal journal to json string
func WithPanicNotify ¶
func WithPanicNotify(notify OnPanicNotify) Option
WithPanicNotify 设置panic时的通知回调
func WithRecordMetrics ¶
func WithRecordMetrics(recoder RecordMetrics) Option
WithRecordMetrics 设置记录prometheus记录指标回调
type RecordMetrics ¶
type RecordMetrics func(method, uri string, success bool, httpCode, businessCode int, costSeconds float64)
RecordMetrics 记录prometheus指标用 如果使用AliasForRecordMetrics配置了别名,uri将被替换为别名。
type RouterGroup ¶
type RouterGroup interface { Group(string, ...HandlerFunc) RouterGroup IRoutes }
RouterGroup 包装gin的RouterGroup