Middleware

A middleware is a function called before handler. A syntax to create middleware:

package app

func Middleware(ctx core.Ctx) error {
    // Something
    return ctx.Next()
}

Use middleware in controller:

package app

func Controller(module *core.DynamicModule) *core.DynamicController {
    ctrl := module.NewController("test")
    
    ctrl.Use(Middleware).Get("", func(ctx core.Ctx) error {
        return ctx.JSON(Map{
	    "data": "ok",
	})
    })
    
    return ctrl
}

Use middleware for all route in controller:

package app

func Controller(module *core.DynamicModule) *core.DynamicController {
    ctrl := module.NewController("test").Use(Middleware).Registry()
    
    ctrl.Get("", func(ctx core.Ctx) error {
        return ctx.JSON(Map{
	    "data": "ok",
	})
    })
    
    return ctrl
}

Use middleware for module:

package app

func Module(module *core.DynamicModule) *core.DynamicModule {
    mod := module.New(core.NewModuleOptions{
        Middlewares: []core.Middleware{Middleware}
    })
    
    return mod
}

Last updated