使用 Go 和 gin-gorm 构建简单的 REST API-icode9专业技术文章分享
互联网 2023/3/22 22:50:20
REST ( Representational State Transfer ) 是一种使用 HTTP 协议进行数据交换的通信架构方法。应用程序编程接口(API)是计算机之间或计算机程序之间的连接。它是一种软件接口,为其他软件提供服务。简而言之,API 可以使其他应用程序,无论是移动应用程序还是其他应用程序,都可以与我们的应用程序进行通信。
在这篇文章中,我想分享如何使用gin和gorm以简单的方式在 Go 中创建一个简单的 REST API。
首先,使用 go mod 命令创建新的 go 项目
# 创建文件夹 mkdir go-api # 将目录更改为 go-api cd go-api # 初始化 go 项目 go mod init go-api
安装 gin 包
去获取-u github.com/gin-gonic/gin
安装 gorm 包和 db 驱动,db 驱动可以根据需要定制。对于支持的数据库驱动程序,您可以在此处签入。在这篇文章中,我将使用 postgreSQL。
去获取-u gorm.io/gorm 去获取-u gorm.io/driver/postgres
由于 Go 让我们根据自己的需要构建项目,而且 Go 没有标准结构。这是我将用于此项目的结构,或者您可以定义自己的结构。

src/config
为 set db connection in 创建一个 go 文件,我将在as中创建它db.go
。
包数据库 导入( "gorm.io/driver/postgres" "gorm.io/gorm" ) func Connect () *gorm.DB { dsn := "host=localhost user=root password=root dbname=go-api port= 9920 sslmode=disable TimeZone=Asia/Shanghai" db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) if err != nil { panic (err) } 返回db }
然后创建一个结构来表示我们来自数据库的数据,在此我将创建一个简单的src/apps/post/model.go
package post type Post struct { ID int `json:"id"` 标题字符串 `json:"title"` 正文 字符串 `json:"body"` }
然后创建一个控制器或处理程序文件src/apps/post/handler.go
创建一个 go 文件src/cmd/main/main.go
,然后添加代码来设置路由器。
package main import ( "go-api/src/apps/post" "go-api/src/config/database" "github.com/gin-gonic/gin" ) func main () { // 连接到数据库 db : = database.Connect() // 迁移数据库 db.AutoMigrate(&post.Post{}) // 创建post处理程序 postHandler := post.NewPostHandler(db) // 创建路由器 router := gin.Default() api := router .Group( "/api" ) postRoute := api.Group( "/post" ) postRoute.GET( "" , postHandler.GetPosts) postRoute.GET( "/:id", postHandler.GetPost) postRoute.POST( "" , postHandler.CreatePost) postRoute.PUT( "/:id" , postHandler.UpdatePost) postRoute.DELETE( "/:id" , postHandler.DeletePost) // 运行服务器 路由器。运行() }
测试
运行go run src/cmd/main/main.go
,一旦我们的应用程序运行,我们就可以使用邮递员、失眠等应用程序测试我们的 API。我将使用邮递员来测试我们的 API。





标签:Web开发,后端,编程 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[使用 Go 和 gin-gorm 构建简单的 REST API-icode9专业技术文章分享]http://www.zyiz.net/tech/detail-400157.html
- 2023-03-23深入理解Go语言中的sync.Cond
- 2023-03-062023年的Rust与Go
- 2023-02-14【备战春招】第6天 mongodb
- 2023-02-13【讲师分享】万字长文告诉你Go 1.20中值得关注的几个变化
- 2023-02-11经过99次失败后, 我总结了几点 Golang 反射的经验(附源码)
- 2023-02-11【备战春招】第4天 GO 变量声明
- 2023-01-10添加水印为什么重要?如何在线给图片添加水印LOGO?
- 2023-01-05【讲师分享】Go为什么能成功
- 2023-01-05【讲师分享】2022年Go语言盘点:泛型落地,无趣很好,稳定为王
- 2023-01-04精简指南:如何使用 Laravel 同步 Google 日历