core

package
v1.2.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 11, 2021 License: MIT Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DisableTrace

func DisableTrace(ctx Context)

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 参数(如路由路径为 /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 errno.Error)

	// Header 获取 Header 对象
	Header() http.Header
	// GetHeader 获取 Header
	GetHeader(key string) string
	// SetHeader 设置 Header
	SetHeader(key, value string)

	// UserID 获取 UserID
	UserID() int64

	// UserName 获取 UserName
	UserName() string

	// Alias 设置路由别名 for metrics uri
	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
	// contains filtered or unexported methods
}

type HandlerFunc

type HandlerFunc func(c Context)

func AliasForRecordMetrics

func AliasForRecordMetrics(path string) HandlerFunc

AliasForRecordMetrics 对请求uri起个别名,用于prometheus记录指标。 如:Get /user/:username 这样的uri,因为username会有非常多的情况,这样记录prometheus指标会非常的不有好。

func WrapAuthHandler

func WrapAuthHandler(handler func(Context) (userID int64, userName string, err errno.Error)) HandlerFunc

WrapAuthHandler 用来处理 Auth 的入口,在之后的handler中只需 ctx.UserID() ctx.UserName() 即可。

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

func New

func New(logger *zap.Logger, options ...Option) (Mux, error)

type OnPanicNotify

type OnPanicNotify func(ctx Context, err interface{}, stackInfo string)

OnPanicNotify 发生panic时通知用

type Option

type Option func(*option)

func WithDisablePProf

func WithDisablePProf() Option

WithDisablePProf 禁用 pprof

func WithDisablePrometheus added in v1.2.7

func WithDisablePrometheus() Option

WithDisablePrometheus 禁用prometheus

func WithDisableSwagger

func WithDisableSwagger() Option

WithDisableSwagger 禁用 swagger

func WithEnableCors

func WithEnableCors() Option

WithEnableCors 开启CORS

func WithEnableOpenBrowser added in v1.2.4

func WithEnableOpenBrowser(uri string) Option

WithEnableOpenBrowser 启动后在浏览器中打开 uri

func WithEnableRate

func WithEnableRate() Option

func WithPanicNotify

func WithPanicNotify(notify OnPanicNotify) Option

WithPanicNotify 设置panic时的通知回调

func WithRecordMetrics

func WithRecordMetrics(record RecordMetrics) Option

WithRecordMetrics 设置记录prometheus记录指标回调

type RecordMetrics

type RecordMetrics func(method, uri string, success bool, httpCode, businessCode int, costSeconds float64, traceId string)

RecordMetrics 记录prometheus指标用 如果使用AliasForRecordMetrics配置了别名,uri将被替换为别名。

type RouterGroup

type RouterGroup interface {
	Group(string, ...HandlerFunc) RouterGroup
	IRoutes
}

RouterGroup 包装gin的RouterGroup

type StdContext

type StdContext struct {
	stdctx.Context
	Trace
	*zap.Logger
}

type Trace

type Trace = trace.T

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL