go语言rest api分页回复
在Go语言中,可以使用gin框架来实现REST API的分页功能。下面是一个简单的示例代码:
package main
import (
"github.com/gin-gonic/gin"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
var users = []User{
{1, "Alice"},
{2, "Bob"},
{3, "Charlie"},
{4, "David"},
{5, "Emma"},
}
func main() {
r := gin.Default()
r.GET("/users", getUsers)
r.Run(":8080")
}
func getUsers(c *gin.Context) {
page := c.DefaultQuery("page", "1")
pageSize := c.DefaultQuery("pageSize", "10")
// 将字符串转换为整数
pageNum, _ := strconv.Atoi(page)
pageSizeNum, _ := strconv.Atoi(pageSize)
// 计算起始索引和结束索引
startIndex := (pageNum - 1) * pageSizeNum
endIndex := pageNum * pageSizeNum
// 确保索引不超过用户数组的长度
if startIndex >= len(users) {
c.JSON(200, gin.H{
"message": "No more users",
})
return
}
if endIndex > len(users) {
endIndex = len(users)
}
// 获取对应分页的用户数据
pagedUsers := users[startIndex:endIndex]
c.JSON(200, pagedUsers)
}
在上述示例中,我们定义了一个名为User的结构体,用于表示用户信息。然后,我们定义了一个全局变量users,用于存储用户数据。
在getUsers函数中,我们首先从请求参数中获取page和pageSize参数,并将其转换为整数类型。然后,我们根据分页参数计算起始索引和结束索引。
接下来,我们根据计算出的索引值从users数组中获取对应分页的用户数据,并将其作为响应返回。
如果起始索引超过用户数组的长度,我们返回一个包含错误信息的JSON响应。
最后,我们使用gin框架的Run方法来启动Web服务器,并监听8080端口。
通过访问http://localhost:8080/users?page=1&pageSize=2,我们可以获取第一页每页两个用户的数据
原文地址: http://www.cveoy.top/t/topic/iYz8 著作权归作者所有。请勿转载和采集!