使用gin做一个增删改查接口

一. 准备工作

1.数据库

main表

2. 需要导入的包

sql包:“database/sql”
sql驱动包:"_github.com/go-sql-driver/mysql"
gin框架包:“github.com/gin-gonic/gin”
http包:“net/http”
![需要加入的包](https://img-blog.csdnimg.cn/20210413114016159.jpg#pic_center
import包

这里的下划线“_”是只使用mysql驱动下的所有init()方法

3.check方法

check方法用来返回报错信息

check函数

4.测试接口

测试gin

运行结果(成功运行):
在这里插入图片描述

二.查(select)

1.userlist的构造体

userlist构造体用来接收数据库admin表
userlist结构体

2.写getAdmin方法

getAdmin方法用来连接数据库驱动、执行select语句、对查询到的数据进行处理并返回给data
getAdmin函数

3.gin设置路由并返回到前端

调用getAdmin方法
设置admin接口
在这里插入图片描述

4.运行结果

得到了我们查询的数据
select查询到的结果

三.删(delete)

1.构造体

构造体之前已经创建(userlist)

2.DeleteAdmin方法

DeleteAdmin也和getAdmin方法差不多
DeleteAdmin根据admin表的id字段删除记录
这里的返回值是写死的(1表示删除成功,0表示删除失败)
在这里插入图片描述

3.gin设置路由并使用POST方法返回到前端

调用DeleteAdmin函数
设置一个DeleteAdmin接口
在这里插入图片描述

4.运行结果

这里使用的是Postman工具进行POST请求访问DeleteAdmin接口
删除admin表中id为2的数据
在这里插入图片描述
操作完之后在使用/admin查看admin表
删除后的admin表

四.改(update)

1.SetAdmin方法

SetAdmin方法根据admin表中id字段修改userName,account,password字段
update

2.gin设置路由并使用POST方法返回到前端

调用SetAdmin函数
设置一个SetAdmin接口
在这里插入图片描述

3.运行结果

这里使用的是Postman工具进行POST请求访问SetAdmin接口
运行结果
再次使用/admin接口访问
查询结果图

五.增(insert)

1.InsertAdmin方法

InsertAdmin方法使用insert语句对admin表进行添加数据
在这里插入图片描述

2.gin设置路由并使用POST方法返回到前端

调用InsertAdmin函数
设置一个insertAdmin接口
在这里插入图片描述

3.运行结果

这里使用的是Postman工具进行POST请求访问insertAdmin接口
在这里插入图片描述
调用admin接口
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是使用 Gin 框架编写一个简单的增删的示例代码: ```go package main import ( "net/http" "strconv" "github.com/gin-gonic/gin" ) type User struct { ID int `json:"id"` Name string `json:"name"` Age int `json:"age"` } var userList []User func main() { r := gin.Default() // 询用户列表 r.GET("/users", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "data": userList, }) }) // 根据 ID 询用户 r.GET("/users/:id", func(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": "Invalid user ID", }) return } for _, user := range userList { if user.ID == id { c.JSON(http.StatusOK, gin.H{ "data": user, }) return } } c.JSON(http.StatusNotFound, gin.H{ "message": "User not found", }) }) // 新增用户 r.POST("/users", func(c *gin.Context) { var user User if err := c.ShouldBindJSON(&user); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": "Invalid user data", }) return } user.ID = len(userList) + 1 userList = append(userList, user) c.JSON(http.StatusOK, gin.H{ "message": "User created successfully", "data": user, }) }) // 更新用户 r.PUT("/users/:id", func(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": "Invalid user ID", }) return } var user User if err := c.ShouldBindJSON(&user); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": "Invalid user data", }) return } for i, oldUser := range userList { if oldUser.ID == id { user.ID = id userList[i] = user c.JSON(http.StatusOK, gin.H{ "message": "User updated successfully", "data": user, }) return } } c.JSON(http.StatusNotFound, gin.H{ "message": "User not found", }) }) // 删除用户 r.DELETE("/users/:id", func(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": "Invalid user ID", }) return } for i, user := range userList { if user.ID == id { userList = append(userList[:i], userList[i+1:]...) c.JSON(http.StatusOK, gin.H{ "message": "User deleted successfully", }) return } } c.JSON(http.StatusNotFound, gin.H{ "message": "User not found", }) }) r.Run() // 启动 HTTP 服务 } ``` 这是一个非常简单的示例,用于演示如何使用 Gin 框架实现增删功能。可以通过访问以下 URL 来测试: - 询用户列表:GET http://localhost:8080/users - 根据 ID 询用户:GET http://localhost:8080/users/:id - 新增用户:POST http://localhost:8080/users - 更新用户:PUT http://localhost:8080/users/:id - 删除用户:DELETE http://localhost:8080/users/:id 其中,`:id` 代表用户的 ID,需要替换成实际的用户 ID。在请求中,需要提供 JSON 格式的请求体来传递用户数据。可以使用 Postman 等工具来测试这些 API。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值