本书未发布

11.1. 组路由

未匹配的标注
package main

/*
Router.Group 返回一个新的组路由,新路由器具有独立的参数和处理函数扩展。
Group后新增参数、中间件、扩展均不会响应到原路由器。
*/

import (
    "github.com/eudore/eudore"
    "github.com/eudore/eudore/component/httptest"
    "github.com/eudore/eudore/middleware"
)

func main() {
    app := eudore.NewApp()
    app.AddMiddleware(middleware.NewLoggerFunc(app, "route"))

    // 创建组路由
    apiv1 := app.Group("/api/v1")
    apiv1.AnyFunc("/*", handlepre1, handleparam)
    apiv1.GetFunc("/get/:name", handleget)

    // 默认路由
    app.AnyFunc("/*path", func(ctx eudore.Context) {
        ctx.WriteString(ctx.Method() + " " + ctx.Path())
        ctx.WriteString("\nstar param: " + " " + ctx.GetParam("path"))
    })

    client := httptest.NewClient(app)
    client.NewRequest("GET", "/api/v1/").Do().Out()
    client.NewRequest("GET", "/api/v1/get/eudore").Do().Out()
    client.NewRequest("GET", "/api/v1/set/eudore").Do().Out()

    app.Listen(":8088")
    // app.CancelFunc()
    app.Run()
}

func handleget(ctx eudore.Context) {
    ctx.Debug("Get: " + ctx.GetParam("name"))
    ctx.WriteString("Get: " + ctx.GetParam("name"))
}
func handlepre1(ctx eudore.Context) {
    ctx.WriteString("handlepre1\n")
}
func handleparam(ctx eudore.Context) {
    ctx.WriteString("handleparam: " + ctx.GetParam("*"))
}

反馈和交流请加群组:QQ群373278915

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~