希曼日记

Gin REful API

本页目录 6
  1. 默认值
  2. Number
  3. 响应头
  4. Date
  5. 动态参数
  6. POST

默认值

DefaultXXX()设置默认值 XXXArray("name")对传入的多个name值存储为数组

Number

前端可能会把数字类型的包装为字符串, 可以使用encoding/jsonjson.Number,

本质是遍历JSON的类型

响应头

c.Header("Content-Type", "application/json")

Date

time.Time 定义日期

前端: 将日期转为JSON格式

new Date(<Date>).toJSON()

GO: 定义日期

type Person struct {
	Name       string      `json:"username" binding:"required,min=3,max=20"`
	Nickname   string      `json:"nickname" binding:"nefield=Name"`
	Age        json.Number `json:"age"`
	CreateTime time.Time   `json:"create_time"` // 定义日期 
	Password   string      `json:"password" binding:"required,min=3"`
	RePassword string      `json:"re_password" binding:"required,eqfield=Password"`
	Tel        string      `json:"tel"`
}

动态参数

Param()

POST

前端代码

var myHeaders = new Headers();
myHeaders.append("User-Agent", "Apifox/1.0.0 (https://www.apifox.cn)");
myHeaders.append("Accept", "*/*");
myHeaders.append("Host", "localhost:4000");
myHeaders.append("Connection", "keep-alive");
myHeaders.append("Content-Type", "multipart/form-data; boundary=--------------------------688992984241366950538284");
var formdata = new FormData();
formdata.append("file", fileInput.files[0], "d:\Rococo\Pictures\Camera Roll\1fe8a94571046a4b8a78cb52520d92b2.jpg");
var requestOptions = {
    method: 'POST',
    headers: myHeaders,
    body: formdata,
    redirect: 'follow'
};

fetch("http://localhost:4000/pet/upload", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

multipart/form-data

接收File: content.FormFile("key") 接受全部参数(key, file): context.MultipartForm() 示例:

petGroup.POST("/upload", func(context *gin.Context) {
	file1, err := context.FormFile("file")
	if err != nil {
		panic(err)
	}
	context.JSON(http.StatusOK, gin.H{
		"file": file1,
	})
})