在 GoFrame 中,路由规则是指定义路由的方式和模式。GoFrame 支持多种灵活的路由规则,包括基本的静态路由、动态路由参数、正则路由、RESTful 路由等。以下是一些常见的路由规则示例:

1. 静态路由:

静态路由是最简单的路由形式,直接匹配指定的路径。
func init() {
    s := g.Server()
    // 静态路由
    s.BindHandler("/hello", controller.Hello)
}

2. 动态路由参数:

动态路由参数允许在路由中包含变量,这些变量可以通过 r.Get 方法获取。
func init() {
    s := g.Server()
    // 动态路由参数
    s.BindHandler("/user/:id", controller.UserInfo)
}

在控制器中获取参数:
func UserInfo(r *ghttp.Request) {
    userId := r.Get("id")
    r.Response.Write("User ID: " + userId)
}

3. 正则路由:

使用正则表达式来匹配路由,可以更灵活地定义路由规则。
func init() {
    s := g.Server()
    // 正则路由
    s.BindHandler(`^/user/(\d+)$`, controller.UserInfo)
}

在控制器中获取匹配的正则参数:
func UserInfo(r *ghttp.Request) {
    userId := r.Get(1)
    r.Response.Write("User ID: " + userId)
}

4. RESTful 路由:

RESTful 风格的路由是一种按照资源和 HTTP 方法来定义的路由规则。
func init() {
    s := g.Server()
    // RESTful 路由
    s.BindRest("/api/user", controller.RestfulUser)
}

在控制器中处理 RESTful 请求:
func RestfulUser(r *ghttp.Request) {
    switch r.Method {
    case "GET":
        // 处理 GET 请求
    case "POST":
        // 处理 POST 请求
    case "PUT":
        // 处理 PUT 请求
    case "DELETE":
        // 处理 DELETE 请求
    default:
        r.Response.WriteStatus(http.StatusMethodNotAllowed)
    }
}

这只是一些 GoFrame 中常见的路由规则示例,具体的使用方法和功能可能会根据 GoFrame 版本的更新而变化,因此建议查阅最新的 GoFrame 文档以获取准确的信息。在编写代码时,可以根据项目需求选择合适的路由规则。


转载请注明出处:http://www.zyzy.cn/article/detail/7806/GoFrame