自动解析请求参数

// Get请求参数的获取,和参数名无关
//只与处理器的如参顺序和类型有关 
// GET http://localhost:8080/get?age=20&name=saber
a.Get("/get", func(age int, name string) {
    fmt.Printf("age: %d, name: %s", age, name)
})

http://localhost:8080/get?age=20&name=saber

map 解析

通过map可以 k/v 形式的参数,使用map解析请求需要注意的一点,如上述的参数类型存在多种则只能通过 map[string]interface{} 或者 map[string]string 这样的形式来处理否则参数解析将失败。

// GET http://localhost:8080/get?age=20&name=saber
a.Get("/get", func(data map[string]string) {
    fmt.Println(data)
}) 

通过结构体解析

Get也可以通过自定义结构体来接收参数,结构体的字段必须为可导出,即大写字母开头(结构体方式解析参数需要对应属性完整,否则可能存在初始化失败属性零值的bug)

type Get struct {
    Name string
    Age  int
}
// GET http://localhost:8080/get?age=20&name=saber
a.Get("/get", func(data Get) {
    fmt.Println(data)
})
最后编辑: kuteng  文档更新时间: 2022-07-29 09:12   作者:kuteng