办法1:传统做法,逐一获取请求里的参数
name := ctx.PostValueDefault("name", "")
address := ctx.PostValueDefault("address", "")
if name == "" || address == "" {
ApiFailure(ctx, "门店名或地址不能为空")
return
}
其中,ApiFailure是我自己封装的响应函数。
办法2:使用map, 将请求参数值存放到一个map里
var attrs map[string]interface{}
if err := ctx.ReadBody(&attrs); err != nil {
api.Failure(ctx, err.Error())
return
}
办法3:使用Entity, 将请求参数值存放到一个实体里
type StoreEntity struct {
ID uint `gorm:"primary_key" json:"id"`
Ctime common.MyTime `json:"ctime"`
Mtime common.MyTime `json:"mtime"`
Dtime common.MyTime `json:"dtime"`
Comment string `json:"comment"`
Priority int `json:"priority"`
IsActive int `json:"is_active"`
IsDel int `json:"is_del"`
Name string `json:"name"`
Address string `json:"address"`
}
var storeEntity StoreEntity
if err := ctx.ReadBody(&storeEntity); err != nil {
api.Failure(ctx, err.Error())
return
}
办法4:使用DTO, 将请求参数值存放到一个DTO里
type UpdateDTO struct {
ID int `json:"id" url:"id" form:"id"`
Name string `json:"name" url:"name" form:"name"`
Address string `json:"address" url:"address" form:"address"`
Mtime common.MyTime `json:"mtime"`
}
var updateDTO UpdateDTO
if err := ctx.ReadBody(&updateDTO); err != nil {
api.Failure(ctx, err.Error())
return
}