Documentation ¶
Overview ¶
Package middleware is gin middleware plugin.
Index ¶
- Constants
- Variables
- func AdaptCtx(ctx context.Context) (*gin.Context, context.Context)
- func Auth(opts ...JwtOption) gin.HandlerFunc
- func AuthCustom(verify VerifyCustomFn, opts ...JwtOption) gin.HandlerFunc
- func CircuitBreaker(opts ...CircuitBreakerOption) gin.HandlerFunc
- func Cors() gin.HandlerFunc
- func CtxRequestID(ctx context.Context) string
- func CtxRequestIDField(ctx context.Context) zap.Field
- func GCtxRequestID(c *gin.Context) string
- func GCtxRequestIDField(c *gin.Context) zap.Field
- func GetFromCtx(ctx context.Context, key string) interface{}
- func GetFromHeader(ctx context.Context, key string) string
- func GetFromHeaders(ctx context.Context, key string) []string
- func HeaderRequestID(c *gin.Context) string
- func HeaderRequestIDField(c *gin.Context) zap.Field
- func Logging(opts ...Option) gin.HandlerFunc
- func RateLimit(opts ...RateLimitOption) gin.HandlerFunc
- func RequestID(opts ...RequestIDOption) gin.HandlerFunc
- func SimpleLog(opts ...Option) gin.HandlerFunc
- func Timeout(d time.Duration) gin.HandlerFunc
- func Tracing(serviceName string, opts ...TraceOption) gin.HandlerFunc
- func VerifySignatureMiddleware(signKey string) gin.HandlerFunc
- func WrapCtx(c *gin.Context) context.Context
- func XSSCrossMiddleware() gin.HandlerFunc
- type CircuitBreakerOption
- type CtxKeyString
- type JwtOption
- type Option
- type RateLimitOption
- type RequestIDOption
- type TraceOption
- type VerifyCustomFn
- type VerifyFn
Constants ¶
const (
// HeaderAuthorizationKey http header authorization key
HeaderAuthorizationKey = "Authorization"
)
Variables ¶
var ( // ContextRequestIDKey request id for context ContextRequestIDKey = "request_id" // HeaderXRequestIDKey header request id key HeaderXRequestIDKey = "X-Request-Id" RequestValue = krand.String(krand.R_NUM, 32) )
var ErrLimitExceed = rl.ErrLimitExceed
ErrLimitExceed is returned when the rate limiter is triggered and the request is rejected due to limit exceeded.
var ErrNotAllowed = circuitbreaker.ErrNotAllowed
ErrNotAllowed error not allowed.
var RequestHeaderKey = "request_header_key"
RequestHeaderKey request header key
var RequestIDKey = CtxKeyString(ContextRequestIDKey)
RequestIDKey request_id
Functions ¶
func AdaptCtx ¶
AdaptCtx adapt context, if ctx is gin.Context, return gin.Context and context of the transformation
func AuthCustom ¶
func AuthCustom(verify VerifyCustomFn, opts ...JwtOption) gin.HandlerFunc
AuthCustom custom authentication
func CircuitBreaker ¶
func CircuitBreaker(opts ...CircuitBreakerOption) gin.HandlerFunc
CircuitBreaker a circuit breaker middleware
func CtxRequestID ¶
CtxRequestID get request id from context.Context
func CtxRequestIDField ¶
CtxRequestIDField get request id field from context.Context
func GCtxRequestID ¶
GCtxRequestID get request id from gin.Context
func GCtxRequestIDField ¶
GCtxRequestIDField get request id field from gin.Context
func GetFromCtx ¶
GetFromCtx get value from context
func GetFromHeader ¶
GetFromHeader get value from header
func GetFromHeaders ¶
GetFromHeaders get values from header
func HeaderRequestID ¶
HeaderRequestID get request id from the header
func HeaderRequestIDField ¶
HeaderRequestIDField get request id field from header
func RateLimit ¶
func RateLimit(opts ...RateLimitOption) gin.HandlerFunc
RateLimit an adaptive rate limiter middleware
func RequestID ¶
func RequestID(opts ...RequestIDOption) gin.HandlerFunc
RequestID is an interceptor that injects a 'request id' into the context and request/response header of each request.
func Tracing ¶
func Tracing(serviceName string, opts ...TraceOption) gin.HandlerFunc
Tracing returns interceptor that will trace incoming requests. The service parameter should describe the name of the (virtual) server handling the request.
func VerifySignatureMiddleware ¶
func VerifySignatureMiddleware(signKey string) gin.HandlerFunc
func XSSCrossMiddleware ¶
func XSSCrossMiddleware() gin.HandlerFunc
Types ¶
type CircuitBreakerOption ¶
type CircuitBreakerOption func(*circuitBreakerOptions)
CircuitBreakerOption set the circuit breaker circuitBreakerOptions.
func WithGroup ¶
func WithGroup(g *group.Group) CircuitBreakerOption
WithGroup with circuit breaker group. NOTE: implements generics circuitbreaker.CircuitBreaker
func WithValidCode ¶
func WithValidCode(code ...int) CircuitBreakerOption
WithValidCode http code to mark failed
type JwtOption ¶
type JwtOption func(*jwtOptions)
JwtOption set the jwt options.
func WithSwitchHTTPCode ¶
func WithSwitchHTTPCode() JwtOption
WithSwitchHTTPCode switch to http code
type Option ¶
type Option func(*options)
Option set the gin logger options.
func WithIgnoreRoutes ¶
WithIgnoreRoutes no logger content routes
func WithLogFrom ¶
func WithRequestIDFromContext ¶
func WithRequestIDFromContext() Option
WithRequestIDFromContext name is field in context, default value is request_id
func WithRequestIDFromHeader ¶
func WithRequestIDFromHeader() Option
WithRequestIDFromHeader name is field in header, default value is X-Request-Id
type RateLimitOption ¶
type RateLimitOption func(*rateLimitOptions)
RateLimitOption set the rate limits rateLimitOptions.
func WithCPUQuota ¶
func WithCPUQuota(quota float64) RateLimitOption
WithCPUQuota with real cpu quota(if it can not collect from process correct);
func WithCPUThreshold ¶
func WithCPUThreshold(threshold int64) RateLimitOption
WithCPUThreshold with cpu threshold
type RequestIDOption ¶
type RequestIDOption func(*requestIDOptions)
RequestIDOption set the request id options.
func WithContextRequestIDKey ¶
func WithContextRequestIDKey(key string) RequestIDOption
WithContextRequestIDKey set context request id key, minimum length of 4
func WithHeaderRequestIDKey ¶
func WithHeaderRequestIDKey(key string) RequestIDOption
WithHeaderRequestIDKey set header request id key, minimum length of 4
func WithRequestIDValue ¶
func WithRequestIDValue(value string) RequestIDOption
type TraceOption ¶
type TraceOption func(*traceConfig)
TraceOption specifies instrumentation configuration options.
func WithPropagators ¶
func WithPropagators(propagators propagation.TextMapPropagator) TraceOption
WithPropagators specifies propagators to use for extracting information from the HTTP requests. If none are specified, global ones will be used.
func WithTracerProvider ¶
func WithTracerProvider(provider oteltrace.TracerProvider) TraceOption
WithTracerProvider specifies a tracer provider to use for creating a tracer. If none is specified, the global provider is used.
type VerifyCustomFn ¶
VerifyCustomFn verify custom function, tokenTail10 is a string that intercepts the last 10 characters of the token.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package metrics is gin metrics library, collect five metrics, "uptime", "http_request_count_total", "http_request_duration_seconds", "http_request_size_bytes", "http_response_size_bytes".
|
Package metrics is gin metrics library, collect five metrics, "uptime", "http_request_count_total", "http_request_duration_seconds", "http_request_size_bytes", "http_response_size_bytes". |