Beego处理请求参数有下面几种方式:
- 通过内置方法GetString、GetInt等直接读取指定字段的参数
- 通过ParseForm方法,把请求参数绑定到一个struct对象
- 如果请求参数是json格式,需要通过this.Ctx.Input.RequestBody获取请求的json字符串,然后使用Unmarshal对json进行反序列化。
例子:
package controllers
import (
"encoding/json"
"github.com/astaxie/beego"
)
type UserController struct {
beego.Controller
}
// 处理 GET 请求
func (c *UserController) Get() {
userId := this.GetString("userId")
username := this.GetString("username")
c.Data["json"] = map[string]string{"userId": userId, "username": username}
c.ServeJSON()
}
// 处理 POST 请求
func (c *UserController) Post() {
var user struct {
UserId string `json:"userId"`
UserName string `json:"userName"`
}
// 处理son请求参数
err := json.Unmarshal(c.Ctx.Input.RequestBody, &user)
if err != nil {
// 处理错误
}
c.Data["json"] = map[string]string{"userId": user.UserId, "username": user.UserName}
c.ServeJSON()
}
详情请参考:beego处理请求参数