如何使用Golang开发REST API接口_实现基本增删改查操作

1次阅读

使用 gin 框架实现 rest api CRUD:定义 User 结构体与内存存储,注册 GET/POST/PUT/delete 路由,校验请求、处理状态码,启用日志与 Recovery 中间件提升健壮性。

如何使用Golang开发REST API接口_实现基本增删改查操作

golang 开发 REST API 实现增删改查(CRUD),核心是选对 Web 框架、设计清晰的路由、定义好数据结构,并把业务逻辑与 http 处理分离。推荐使用轻量但足够灵活的 net/http 或更易上手的 gin(本文以 gin 为例,兼顾简洁与实用性)。

准备环境与依赖

确保已安装 Go(建议 1.20+),然后初始化模块并引入 gin:

  • 执行 go mod init myapi 初始化模块
  • 运行 go get -u github.com/gin-gonic/gin
  • 创建 main.go,导入 “github.com/gin-gonic/gin”

定义数据模型与存储

先定义一个简单的用户结构体,用内存切片模拟数据库(便于演示,后续可替换为 sqlredis):

type User struct {     ID   int    `json:"id"`     Name string `json:"name"`     Age  int    `json:"age"` }  var users = []User{     {ID: 1, Name: "张三", Age: 25},     {ID: 2, Name: "李四", Age: 30}, } var nextID = 3

注意:真实项目中应使用结构体标签(如 json:”name”)控制序列化,避免字段名大小写导致前端接收异常。

立即学习go语言免费学习笔记(深入)”;

如何使用Golang开发REST API接口_实现基本增删改查操作

ListenLeap

ai辅助通过播客学英语

如何使用Golang开发REST API接口_实现基本增删改查操作 217

查看详情 如何使用Golang开发REST API接口_实现基本增删改查操作

实现 CRUD 路由与处理函数

在 gin.Engine 上注册标准 REST 路由,每个方法对应一种操作:

  • GET /users:返回全部用户列表,状态码 200
  • GET /users/:id:根据路径参数 id 查单个用户,找不到返回 404
  • POST /users:解析 JSON 请求体,校验必填字段(如 Name),生成新用户并返回 201
  • PUT /users/:id:查找原用户,更新字段(建议只更新传入字段,非全量覆盖),返回 200 或 404
  • DELETE /users/:id:按 id 删除,成功返回 204,未找到返回 404

示例 POST 处理逻辑:

func createUser(c *gin.Context) {     var newUser User     if err := c.ShouldBindJSON(&newUser); err != nil {         c.JSON(400, gin.H{"error": "无效的 JSON"})         return     }     if newUser.Name == "" {         c.JSON(400, gin.H{"error": "姓名不能为空"})         return     }     newUser.ID = nextID     nextID++     users = append(users, newUser)     c.JSON(201, newUser) }

启动服务与基础优化

调用 router.Run(“:8080”) 启动服务,默认监听本地 8080 端口。上线前建议补充:

  • 添加日志中间件(router.Use(gin.Logger()))观察请求流
  • 启用 Recovery 中间件防止 panic 导致服务崩溃
  • 对所有响应统一加 Content-Type: application/json(gin 默认已做)
  • c.AbortWithStatusJSON() 快速返回错误响应,保持风格一致

不复杂但容易忽略:所有 ID 参数需转为整型并校验是否 > 0;更新和删除前务必检查资源是否存在,避免静默失败。

text=ZqhQzanResources