README
¶
Package Middleware
This package contains http middleware.
The middleware are actually a pure http.Handler
. We keep the handler in this way since it's the form that compatible with
golang standard.
JWT Middleware
JWT middleware is middleware for checking whether token is valid or not.
Log Middleware
Log middleware is middleware that will help logging the application. The logging prints out log from Kitabisa log specification.
How To Use The Middleware
func main() {
meta := structs.Meta{
Version: "v1.2.3",
Status: "stable",
APIEnv: "prod-test",
}
handlerCtx := phttp.NewContextHandler(meta)
newHandler := phttp.NewHttpHandler(handlerCtx)
helloHandler := newHandler(HelloHandler)
// middleware initialization. Just initialized it and use.
midd := middleware.NewJWTMiddleware(handlerCtx, []byte("abcde"))
logMiddleware := middleware.NewHttpRequestLoggerMiddleware(logger)
router := chi.NewRouter()
// use the middleware
router.Use(midd)
router.Use(logMiddleware)
router.Get("/", helloHandler.ServeHTTP)
http.ListenAndServe(":5678", router)
}
Documentation
¶
Index ¶
- func NewHeaderCheck(hctx phttp.HttpHandlerContext, secretKey string) func(next http.Handler) http.Handler
- func NewHttpRequestLogger(logger *log.Logger) func(next http.Handler) http.Handler
- func NewJWT(hctx phttp.HttpHandlerContext, signKey []byte) func(next http.Handler) http.Handler
- type Header
- type HttpRequestLoggerMiddleware
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewHeaderCheck ¶ added in v2.7.0
func NewHttpRequestLogger ¶ added in v2.7.0
Types ¶
type Header ¶ added in v2.7.0
type Header struct { XKtbsRequestID string `valid:"uuidv4,required"` XKtbsApiVersion string `valid:"semver,required"` XKtbsClientVersion string `valid:"semver,required"` XKtbsPlatformName string `valid:"required"` XKtbsClientName string `valid:"required"` // Optional XKtbsSignature string `valid:"optional"` XKtbsTime string `valid:"int,optional"` Authorization string `valid:"optional"` }
type HttpRequestLoggerMiddleware ¶
type HttpRequestLoggerMiddleware struct {
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.