主要用到GORM检索的时候给定的API Limit & Offset
    Limit指定获取记录的最大数量
    Offset指定在开始返回记录之前要跳过的记录数量

    在接受参数的时候,需要指定 pagepageSize一个默认的值,这样可以实现可选参数的目的
    api.go

    1. func GetAllUsers(c *gin.Context) {
    2. page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
    3. pageSize, _ := strconv.Atoi(c.DefaultQuery("pageSize", "5"))
    4. code, msg, data := sql.GetAllUser(page, pageSize)
    5. if code == 4000 {
    6. c.JSON(http.StatusBadRequest, gin.H{
    7. "code": code,
    8. "msg": msg,
    9. "status": "failed",
    10. })
    11. } else if code == 5000 {
    12. c.JSON(http.StatusOK, gin.H{
    13. "code": code,
    14. "msg": msg,
    15. "status": "ok",
    16. "data": data,
    17. })
    18. }
    19. }

    sql.go

    1. func GetAllUser(page int, pageSize int) (int, string, []dao.User) {
    2. var userList []dao.User
    3. // 根据传入的page和pageSize计算需要返回哪些数据
    4. result := dao.GormDB.Table("user").Limit(pageSize).Offset((page - 1) * pageSize).Find(&userList)
    5. if result.Error != nil {
    6. return 4000, result.Error.Error(), userList
    7. }
    8. return 5000, "success", userList
    9. }

    不传入page和pageSize的时候,会默认返回第一页的前五条数据
    image.png

    也可以指定返回第二页的前三条数据
    image.png