Documentation ¶
Index ¶
- Variables
- func AllowedPathPrefixes(c *gin.Context, prefixes ...string) bool
- func AuthWithConfig(config AuthConfig) gin.HandlerFunc
- func CORSWithConfig(cfg CORSConfig) gin.HandlerFunc
- func CasbinWithConfig(config CasbinConfig) gin.HandlerFunc
- func CopyBody() gin.HandlerFunc
- func CopyBodyWithConfig(config CopyBodyConfig) gin.HandlerFunc
- func Empty() gin.HandlerFunc
- func Logger() gin.HandlerFunc
- func LoggerWithConfig(config LoggerConfig) gin.HandlerFunc
- func RateLimiterWithConfig(config RateLimiterConfig) gin.HandlerFunc
- func Recovery() gin.HandlerFunc
- func RecoveryWithConfig(config RecoveryConfig) gin.HandlerFunc
- func SkippedPathPrefixes(c *gin.Context, prefixes ...string) bool
- func StaticWithConfig(config StaticConfig) gin.HandlerFunc
- func Trace() gin.HandlerFunc
- func TraceWithConfig(config TraceConfig) gin.HandlerFunc
- type AuthConfig
- type CORSConfig
- type CasbinConfig
- type CopyBodyConfig
- type LoggerConfig
- type RateLimiterConfig
- type RateLimiterMemoryConfig
- type RateLimiterMemoryStore
- type RateLimiterRedisConfig
- type RateLimiterRedisStore
- type RateLimiterStorer
- type RecoveryConfig
- type StaticConfig
- type TraceConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultCORSConfig = CORSConfig{ AllowOrigins: []string{"*"}, AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"}, }
View Source
var DefaultCopyBodyConfig = CopyBodyConfig{
MaxContentLen: 32 << 20,
}
View Source
var DefaultLoggerConfig = LoggerConfig{
MaxOutputRequestBodyLen: 1024 * 1024,
MaxOutputResponseBodyLen: 1024 * 1024,
}
View Source
var DefaultRecoveryConfig = RecoveryConfig{
Skip: 3,
}
View Source
var DefaultTraceConfig = TraceConfig{
RequestHeaderKey: "X-Request-Id",
ResponseTraceKey: "X-Trace-Id",
}
View Source
var ErrCasbinDenied = errors.Unauthorized("com.casbin.denied", "Permission denied")
Functions ¶
func AuthWithConfig ¶
func AuthWithConfig(config AuthConfig) gin.HandlerFunc
func CORSWithConfig ¶
func CORSWithConfig(cfg CORSConfig) gin.HandlerFunc
func CasbinWithConfig ¶
func CasbinWithConfig(config CasbinConfig) gin.HandlerFunc
func CopyBody ¶
func CopyBody() gin.HandlerFunc
func CopyBodyWithConfig ¶
func CopyBodyWithConfig(config CopyBodyConfig) gin.HandlerFunc
func Empty ¶
func Empty() gin.HandlerFunc
func LoggerWithConfig ¶
func LoggerWithConfig(config LoggerConfig) gin.HandlerFunc
func RateLimiterWithConfig ¶
func RateLimiterWithConfig(config RateLimiterConfig) gin.HandlerFunc
func Recovery ¶
func Recovery() gin.HandlerFunc
Recovery from any panics and writes a 500 if there was one.
func RecoveryWithConfig ¶
func RecoveryWithConfig(config RecoveryConfig) gin.HandlerFunc
func StaticWithConfig ¶
func StaticWithConfig(config StaticConfig) gin.HandlerFunc
func Trace ¶
func Trace() gin.HandlerFunc
func TraceWithConfig ¶
func TraceWithConfig(config TraceConfig) gin.HandlerFunc
Types ¶
type AuthConfig ¶
type CORSConfig ¶
type CORSConfig struct { Enable bool AllowAllOrigins bool // AllowOrigins is a list of origins a cross-domain request can be executed from. // If the special "*" value is present in the list, all origins will be allowed. // Default value is [] AllowOrigins []string // AllowMethods is a list of methods the client is allowed to use with // cross-domain requests. Default value is simple methods (GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS) AllowMethods []string // AllowHeaders is list of non simple headers the client is allowed to use with // cross-domain requests. AllowHeaders []string // AllowCredentials indicates whether the request can include user credentials like // cookies, HTTP authentication or client side SSL certificates. AllowCredentials bool // ExposeHeaders indicates which headers are safe to expose to the API of a CORS // API specification ExposeHeaders []string // MaxAge indicates how long (with second-precision) the results of a preflight request // can be cached MaxAge int // Allows to add origins like http://some-domain/*, https://api.* or http://some.*.subdomain.com AllowWildcard bool // Allows usage of popular browser extensions schemas AllowBrowserExtensions bool // Allows usage of WebSocket protocol AllowWebSockets bool // Allows usage of file:// schema (dangerous!) use it only when you 100% sure it's needed AllowFiles bool }
type CasbinConfig ¶
type CopyBodyConfig ¶
type LoggerConfig ¶
type RateLimiterConfig ¶
type RateLimiterConfig struct { Enable bool AllowedPathPrefixes []string SkippedPathPrefixes []string Period int MaxRequestsPerIP int MaxRequestsPerUser int StoreType string // memory/redis MemoryStoreConfig RateLimiterMemoryConfig RedisStoreConfig RateLimiterRedisConfig }
type RateLimiterMemoryConfig ¶
type RateLimiterMemoryStore ¶
type RateLimiterMemoryStore struct {
// contains filtered or unexported fields
}
type RateLimiterRedisConfig ¶
type RateLimiterRedisStore ¶
type RateLimiterRedisStore struct {
// contains filtered or unexported fields
}
type RateLimiterStorer ¶
type RateLimiterStorer interface {
Allow(ctx context.Context, identifier string, period time.Duration, maxRequests int) (bool, error)
}
func NewRateLimiterMemoryStore ¶
func NewRateLimiterMemoryStore(config RateLimiterMemoryConfig) RateLimiterStorer
func NewRateLimiterRedisStore ¶
func NewRateLimiterRedisStore(config RateLimiterRedisConfig) RateLimiterStorer
type RecoveryConfig ¶
type RecoveryConfig struct {
Skip int // default: 3
}
type StaticConfig ¶
Click to show internal directories.
Click to hide internal directories.