mirror of
https://github.com/kataras/iris.git
synced 2025-03-14 08:16:28 +01:00
add a simple example about registering middleware(s) to an mvc Application
Former-commit-id: 59da5e241e1488b6b39d2ec0e72c45ad2cc7d901
This commit is contained in:
parent
e30862b74b
commit
b69aebb14a
|
@ -259,6 +259,7 @@ Follow the examples below,
|
||||||
- [Login showcase - Plus Repository and Service layers](mvc/login) **UPDATED**
|
- [Login showcase - Plus Repository and Service layers](mvc/login) **UPDATED**
|
||||||
- [Singleton](mvc/singleton) **NEW**
|
- [Singleton](mvc/singleton) **NEW**
|
||||||
- [Websocket Controller](mvc/websocket) **NEW**
|
- [Websocket Controller](mvc/websocket) **NEW**
|
||||||
|
- [Register Middleware](middleware) **NEW**
|
||||||
- [Vue.js Todo MVC](tutorial/vuejs-todo-mvc) **NEW**
|
- [Vue.js Todo MVC](tutorial/vuejs-todo-mvc) **NEW**
|
||||||
|
|
||||||
### Subdomains
|
### Subdomains
|
||||||
|
|
|
@ -141,5 +141,6 @@ If you're new to back-end web development read about the MVC architectural patte
|
||||||
- [Login showcase - Plus Repository and Service layers](login) **UPDATED**
|
- [Login showcase - Plus Repository and Service layers](login) **UPDATED**
|
||||||
- [Singleton](singleton) **NEW**
|
- [Singleton](singleton) **NEW**
|
||||||
- [Websocket Controller](websocket) **NEW**
|
- [Websocket Controller](websocket) **NEW**
|
||||||
|
- [Register Middleware](middleware) **NEW**
|
||||||
|
|
||||||
Folder structure guidelines can be found at the [_examples/#structuring](https://github.com/kataras/iris/tree/master/_examples/#structuring) section.
|
Folder structure guidelines can be found at the [_examples/#structuring](https://github.com/kataras/iris/tree/master/_examples/#structuring) section.
|
45
_examples/mvc/middleware/main.go
Normal file
45
_examples/mvc/middleware/main.go
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
// Package main shows how you can add middleware to an mvc Application, simply
|
||||||
|
// by using its `Router` which is a sub router(an iris.Party) of the main iris app.
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/kataras/iris"
|
||||||
|
"github.com/kataras/iris/cache"
|
||||||
|
"github.com/kataras/iris/mvc"
|
||||||
|
)
|
||||||
|
|
||||||
|
var cacheHandler = cache.Handler(10 * time.Second)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
app := iris.New()
|
||||||
|
mvc.Configure(app, configure)
|
||||||
|
|
||||||
|
// http://localhost:8080
|
||||||
|
// http://localhost:8080/other
|
||||||
|
//
|
||||||
|
// refresh every 10 second and you'll see different time output.
|
||||||
|
app.Run(iris.Addr(":8080"))
|
||||||
|
}
|
||||||
|
|
||||||
|
func configure(m *mvc.Application) {
|
||||||
|
m.Router.Use(cacheHandler)
|
||||||
|
m.Handle(&exampleController{
|
||||||
|
timeFormat: "Mon, Jan 02 2006 15:04:05",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
type exampleController struct {
|
||||||
|
timeFormat string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *exampleController) Get() string {
|
||||||
|
now := time.Now().Format(c.timeFormat)
|
||||||
|
return "last time executed without cache: " + now
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *exampleController) GetOther() string {
|
||||||
|
now := time.Now().Format(c.timeFormat)
|
||||||
|
return "/other: " + now
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user