七叶笔记 » golang编程 » 「golang」 iris从POST请求里获得参数值的4个办法

「golang」 iris从POST请求里获得参数值的4个办法

iris从POST请求里获得参数值的4个办法

办法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
}  

相关文章