分组路由

    接口文档

    其中:

    1. Group方法用户创建一个分组路由对象,并且支持在指定域名对象上创建。
    2. HTTP Method命名的方法用以绑定指定的HTTP Method路由;其中ALL方法用于注册所有的HTTP Method到指定的函数/对象/控制器上;REST方法用户注册RESTful风格的路由,需给定一个执行对象或者控制器对象。
    3. Middleware方法用于绑定一个或多个中间件到当前分组的路由上,具体详见中间件章节。
    4. Bind方法用于批量路由注册,每一个路由注册项为Slice类型的参数,且参数数量应该>=3个,具体使用请见后续示例。
    1. package main
    2. import (
    3. "github.com/gogf/gf/frame/g"
    4. "github.com/gogf/gf/net/ghttp"
    5. func main() {
    6. s := g.Server()
    7. group.ALL("/all", func(r *ghttp.Request) {
    8. r.Response.Write("all")
    9. })
    10. group.GET("/get", func(r *ghttp.Request) {
    11. r.Response.Write("get")
    12. })
    13. group.POST("/post", func(r *ghttp.Request) {
    14. r.Response.Write("post")
    15. })
    16. s.SetPort(8199)
    17. s.Run()
    18. }

    执行后,终端打印出路由表如下:

    我们使用curl工具来测试一下:

    1. /api/get
      1. get
      2. $ curl -X POST http://127.0.0.1:8199/api/get
      3. Not Found
    2. /api/post
    3. /api/all
      1. $ curl http://127.0.0.1:8199/api/all
      2. all
      3. $ curl -X POST http://127.0.0.1:8199/api/all
      4. all
      5. $ curl -X DELETE http://127.0.0.1:8199/api/all
      6. all
      7. $ curl -X OPTIONS http://127.0.0.1:8199/api/all
      8. all