Произошла ошибка при привязке типа int к Shouldbind в среде Gin, и не удалось выполнить привязку

Когда я реализовал запросы на подкачку с помощью среды Gin, я обнаружил, что JSON, переданный в Postman, никогда не был успешно привязан к PageSize и PageNum типа INT. (Shouldbind не имеет ошибки)
Вот ссылка на изображение: https://i.imgur.com/fbkgonI.png
Код:
API:

func GetAllTask(c *gin.Context)  {
 var getAllService service.GetAllService
 err := c.ShouldBind(&getAllService)
 if err != nil {
    c.JSON(http.StatusBadRequest,gin.H{
       "status":-1,
       "msg":"json解析失败",
       "error":err.Error(),
    })
    return
 }

 claims, err := util.ParserToken(c.GetHeader("token"))
 if err != nil {
    c.JSON(http.StatusBadRequest,gin.H{
       "status":-1,
       "msg":"token解析失败",
       "error":err.Error(),
    })
    return
 }
 res := getAllService.GetAllTask(claims.Uid)
 c.JSON(http.StatusOK,res)
}

услуга:

type GetAllService struct {
    PageSize int    `json:"page_size" form:"page_size" default:"10"`
    PageNum  int    `json:"page_num" form:"page_num" default:"1"`
    //KeyWord  string `form:"key_word"`
    Desc     bool   `json:"desc" form:"desc"`
}

Тело запроса JSON в почтальоне:

{
    "page_size":2,
    "page_num":1,
    "desc":false
}

Пожалуйста, помогите мне. Спасибо!

🤔 А знаете ли вы, что...
Go (или Golang) - это язык программирования, разработанный в Google.


32
1

Ответ:

Решено

Спасибо, BlackGreen. Это было легкомысленно с моей стороны. Я должен изменить Get to POST в маршруте.
Здесь:
Изменить task.GET("/getall",api.GetAllTask) на task.POST("/getall",api.GetAllTask)

Или оставьте task.GET("/getall",api.GetAllTask), просто измените URL-адрес в почтальоне на localhost:8080/api/task/getall?page_size=2&page_num=2.