Comment on page
Reverse Lookups
Route naming is easy, since we just call the returned
*Route
with a Name
field to define a name:package main
import "github.com/kataras/iris/v12"
func main() {
app := iris.New()
// define a function
h := func(ctx iris.Context) {
ctx.HTML("<b>Hi</b1>")
}
// handler registration and naming
home := app.Get("/", h)
home.Name = "home"
// or
app.Get("/about", h).Name = "about"
app.Get("/page/{id}", h).Name = "page"
app.Listen(":8080")
}
When we register the handlers for a specific path, we get the ability to create URLs based on the structured data we pass to Iris. In the example above, we've named three routers, one of which even takes parameters. If we're using the default
html/template
view engine, we can use a simple action to reverse the routes (and generae actual URLs):Home: {{ urlpath "home" }}
About: {{ urlpath "about" }}
Page 17: {{ urlpath "page" "17" }}
Above code would generate the following output:
Home: http://localhost:8080/
About: http://localhost:8080/about
Page 17: http://localhost:8080/page/17
We can use the following methods/functions to work with named routes (and their parameters):
-
URL(routeName string, paramValues ...interface{})
method to generate url string based on supplied parameters -
Path(routeName string, paramValues ...interface{}
method to generate just the path (without host and protocol) portion of the URL based on provided values
Last modified 4mo ago