Như đã đề cập trong phần định tuyến, Iris cung cấp một số phương thức đăng ký xử lý, mỗi phương thức trả về một tuyến.

 


Đặt tên tuyến

Việc đặt tên tuyến rất dễ dàng vì chúng ta chỉ cần gọi *Route với một trường Name được trả về để định nghĩa tên:

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.Run(iris.Addr(":8080"))
}

 


 

Định tuyến đảo ngược AKA tạo URLs từ tên tuyến

Khi chúng ta đăng ký trình xử lý cho một đường dẫn cụ thể, chúng ta có khả năng tạo URL dựa trên dữ liệu có cấu trúc mà chúng ta chuyển cho Iris. Trong ví dụ trên, chúng ta đã đặt tên cho ba bộ định tuyến, một trong số đó thậm chí còn lấy tham số. Nếu chúng ta đang sử dụng công cụ xem html/template, chúng ta có thể sử dụng một hành động đơn giản để đảo ngược các tuyến (và tạo ra các URL thực tế):

Home: {{ urlpath "home" }}
About: {{ urlpath "about" }}
Page 17: {{ urlpath "page" "17" }}

Kết quả của đoạn mã trên:

Home: http://localhost:8080/ 
About: http://localhost:8080/about
Page 17: http://localhost:8080/page/17

 


 

Sử dụng tên tuyến trong mã

Chúng ta có thể sử dụng các phương thức/ hàm sau để làm việc với các tuyến được đặt tên (và các tham số của chúng):

  • Hàm GetRoutes lấy tất cả các tuyến đã đăng ký
  • Phương thức GetRoute(routeName string) để lấy tuyến theo tên
  • Phương thức URL(routeName string, paramValues ...interface{}) để tạo chuỗi url dựa trên các tham số được cung cấp
  • Phương thức Path(routeName string, paramValues ...interface{} để chỉ tạo phần đường dẫn (không có máy chủ và giao thức) của URL dựa trên các giá trị được cung cấp.

 Phần tiếp chúng ta sẽ tìm hiểu về Middleware