全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

用 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"

定义数据模型与存储

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

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")控制序列化,避免字段名大小写导致前端接收异常。

实现 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;更新和删除前务必检查资源是否存在,避免静默失败。


# redis  # js  # 前端  # git  # json  # go  # github  # golang  # app  # 端口  # ai  # 路由  # rest api  # sql  # 中间件  # gin  # 整型  # 结构体  # 数据结构  # 接口  # 切片  # delete  # 数据库  # http  # router  # 新和  # 找不到  # 推荐使用  # 为例  # 并把  # 必填  # 是否存在  # 为空  # 用户列表 


相关文章: 猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  Java解压缩zip - 解压缩多个文件或文件夹实例  建站之星ASP如何实现CMS高效搭建与安全管理?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何在万网主机上快速搭建网站?  ,怎么用自己头像做动态表情包?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  建站之星后台密码遗忘或太弱?如何重置与强化?  ,购物网站怎么盈利呢?  广州美橙建站如何快速搭建多端合一网站?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  建站之星代理平台如何选择最佳方案?  大连 网站制作,大连天途有线官网?  javascript中对象的定义、使用以及对象和原型链操作小结  小程序网站制作需要准备什么资料,如何制作小程序?  建站之星后台密码遗忘如何找回?  北京网站制作公司哪家好一点,北京租房网站有哪些?  内网网站制作软件,内网的网站如何发布到外网?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  清除minerd进程的简单方法  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  建站168自助建站系统:快速模板定制与SEO优化指南  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  ,如何利用word制作宣传手册?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Android自定义控件实现温度旋转按钮效果  如何在万网开始建站?分步指南解析  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  如何在万网自助建站中设置域名及备案?  婚礼视频制作网站,学习*后期制作的网站有哪些?  开心动漫网站制作软件下载,十分开心动画为何停播?  SQL查询语句优化的实用方法总结  Thinkphp 中 distinct 的用法解析  威客平台建站流程解析:高效搭建教程与设计优化方案  如何通过商城自助建站源码实现零基础高效建站?  如何在VPS电脑上快速搭建网站?  建站10G流量真的够用吗?如何应对访问高峰?  香港服务器WordPress建站指南:SEO优化与高效部署策略  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何在云指建站中生成FTP站点?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  如何配置IIS站点权限与局域网访问?  如何通过虚拟主机空间快速建站?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何快速搭建虚拟主机网站?新手必看指南  5种Android数据存储方式汇总  如何在企业微信快速生成手机电脑官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。