per-method

command
Version: v10.0.2+incompatible Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2018 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Overview

If you want to use it as middleware for the entire controller you can use its router which is just a sub router to add it as you normally do with standard API:

I'll show you 4 different methods for adding a middleware into an mvc application, all of those 4 do exactly the same thing, select what you prefer, I prefer the last code-snippet when I need the middleware to be registered somewhere else as well, otherwise I am going with the first one:

“`go // 1 mvc.Configure(app.Party("/user"), func(m *mvc.Application) {

m.Router.Use(cache.Handler(10*time.Second))

}) “`

“`go // 2 // same: userRouter := app.Party("/user") userRouter.Use(cache.Handler(10*time.Second)) mvc.Configure(userRouter, ...) “`

“`go // 3 // same: userRouter := app.Party("/user", cache.Handler(10*time.Second)) mvc.Configure(userRouter, ...) “`

“`go // 4 // same: app.PartyFunc("/user", func(r iris.Party){

r.Use(cache.Handler(10*time.Second))
mvc.Configure(r, ...)

}) “`

If you want to use a middleware for a single route, for a single controller's method that is already registered by the engine and not by custom `Handle` (which you can add the middleware there on the last parameter) and it's not depend on the `Next Handler` to do its job then you just call it on the method:

“`go var myMiddleware := myMiddleware.New(...) // this should return an iris/context.Handler

type UserController struct{} func (c *UserController) GetSomething(ctx iris.Context) {

// ctx.Proceed checks if myMiddleware called `ctx.Next()`
// inside it and returns true if so, otherwise false.
nextCalled := ctx.Proceed(myMiddleware)
if !nextCalled {
    return
}

// else do the job here, it's allowed

} “`

And last, if you want to add a middleware on a specific method and it depends on the next and the whole chain then you have to do it using the `AfterActivation` like the example below:

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL