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
Bình luận