Membina API RESTful menggunakan Golang dan menggunakan ORM melibatkan langkah berikut: Cipta API menggunakan Gin. Pasang dan gunakan GORM sebagai ORM anda. Tentukan model data dan gunakan migrasi pangkalan data. Buat laluan API CRUD. Gunakan GORM untuk operasi pangkalan data. Gunakan API dan aplikasi bahagian hadapan.
RESTful API ialah standard untuk antara muka pengaturcaraan aplikasi moden yang menggunakan standard web seperti HTTP, URL dan JSON untuk berinteraksi dengan pelayan dan mendapatkan data . Dalam artikel ini, kita akan belajar cara membina API RESTful menggunakan Golang dan memanfaatkan ORM (Object Relational Mapper) untuk memudahkan interaksi dengan pangkalan data.
Gin ialah rangka kerja web aplikasi sumber terbuka. Mula-mula, pasang Gin menggunakan arahan berikut:
go get github.com/gin-gonic/gin
Kemudian, mari kita buat fail baharu bernama main.go
dan tulis kod berikut: main.go
的新文件并编写以下代码:
package main import ( "github.com/gin-gonic/gin" ) func main() { router := gin.Default() router.GET("/hello", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "Hello, World!", }) }) router.Run() }
在终端中运行 go run main.go
,然后在浏览器中导航到 localhost:8080/hello
。您应该会看到一条包含 Hello, World!
的 JSON 响应。
GORM 是一个 Go 语言的开源 ORM,简化了与数据库的交互。首先,安装 GORM:
go get -u gorm.io/gorm
在 main.go
中,添加如下代码:
import ( "gorm.io/gorm" "gorm.io/driver/mysql" ) var DB *gorm.DB func connectDB() { // 替换 "user", "password", "dbname" 为实际值 dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { // 处理连接错误 } DB = db }
让我们定义一个名为 Todo
type Todo struct { gorm.Model Task string Done bool }
go run main dalam terminal .go
dan navigasi ke localhost:8080/hello
dalam penyemak imbas anda. Anda seharusnya melihat respons JSON yang mengandungi Hello, World!
. Gunakan GORM sebagai ORMGORM ialah ORM sumber terbuka dalam bahasa Go yang memudahkan interaksi dengan pangkalan data. Mula-mula, pasang GORM: go run main.go migrate
main.go
, tambahkan kod berikut: go run main.go migrate --migration-dir=./migrations up
Todo
: // 创建 Todo router.POST("/todos", createTodo) // 获取所有 Todo router.GET("/todos", getTodos) // 获取指定 Todo router.GET("/todos/:id", getTodoByID) // 更新 Todo router.PUT("/todos/:id", updateTodo) // 删除 Todo router.DELETE("/todos/:id", deleteTodo)
func getTodos(c *gin.Context) { var todos []Todo if err := DB.Find(&todos).Error; err != nil { // 处理错误 } c.JSON(200, todos) }
Atas ialah kandungan terperinci Bagaimana untuk membina API RESTful menggunakan Golang dan menggunakan ORM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!