使用 Go 和 gin-gorm 构建简单的 REST API
作者:互联网
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。