服务端使用Gin框架,并自定义了struct用于绑定json数据,代码精简如下:
package main
import (
"encoding/json"
"fmt"
"net/http"
"time"
"github.com/gin-gonic/gin"
)
type s_data struct {
url string `json:"url" binding:"required"`
imgs []string `json:"imgs"`
timestamp string `json:"timestamp" binding:"required"`
title string `json:"title" binding:"required"`
}
func main() {
_timestamp_format := "2006-01-02 15:04:05"
gin.SetMode(gin.DebugMode)
server := gin.Default()
server.POST("/insert/:project/:taskid", func(c *gin.Context) {
var p s_data
if c.BindJSON(&p) == nil {
project := c.Param("project")
taskid := c.Param("taskid")
c.JSON(http.StatusOK, gin.H{
"err_no": "2001",
"message": "result save successful!",
"project": project,
"taskid": taskid,
"timestamp": time.Now().Format(_timestamp_format),
"title": p.title,
"data": func() string {
json_str, _ := json.Marshal(p.imgs)
return string(json_str)
}(),
})
} else {
c.JSON(http.StatusBadRequest, gin.H{
"err_no": "4001",
"message": "request's params wrong!",
"timestamp": time.Now().Format(_timestamp_format),
})
}
})
server.Run(":8080")
}