interface{}转slice
switch arg.Command {
case "MultiExtractFeatureByFileName":
data, b := (arg.Data).([]interface{}) // 先转成[]interface{}
if !b {
msg := ecode.RequestErr
res := ResDevice{
Command: arg.Command,
Code: msg.Code(),
Data: msg.Message(),
}
jsons, _ := json.Marshal(res)
client.Send(jsons)
return nil
}
var fileName []string
for _, v := range data {
fileName = append(fileName, v.(string)) // 然后转成[]string
}
gin框架调试请求
// 使用中间件调试body数据
engine.Use(func(c *gin.Context) {
data, err := c.GetRawData()
if err != nil {
fmt.Println(err.Error())
}
fmt.Printf("data: %v\n", string(data))
c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(data))
c.Next()
})
// 把解码出的数据重组成json,分别对比传过来的字段
func EditTemplate(c *gin.Context) {
var arg v1.ReqEditTemplate
if err := c.Bind(&arg); err != nil {
c.JSON(ecode.GinRes(nil, ecode.RequestErr))
return
}
data, _ := json.Marshal(arg)
fmt.Println(string(data))
if _, err := govalidator.ValidateStruct(arg); err != nil {
c.JSON(ecode.GinRes(nil, ecode.RequestErr))
return
}
err := srv.EditTemplate(c, &arg)
c.JSON(ecode.GinRes(nil, err))
return
}
http下载文件命名的根据
objectName := "your file name"
header("Content-Disposition", `attachment; filename=`+objectName)
全局map
package main
import (
"xxxxx"
)
// 可以用作宏定义
var bucketName2classify = map[string]int{
"ping": pong,
}
func main() {
}