Der Aufbau einer RESTful-API mit Golang und der Verwendung eines ORM umfasst die folgenden Schritte: Erstellen Sie die API mit Gin. Installieren und verwenden Sie GORM als Ihr ORM. Definieren Sie Datenmodelle und wenden Sie Datenbankmigrationen an. Erstellen Sie eine CRUD-API-Route. Verwenden Sie GORM für Datenbankoperationen. Stellen Sie API- und Front-End-Anwendungen bereit.
RESTful API ist ein Standard für moderne Anwendungsprogrammierschnittstellen, der Webstandards wie HTTP, URL und JSON verwendet, um mit Servern zu interagieren und Daten abzurufen . In diesem Artikel erfahren Sie, wie Sie mit Golang eine RESTful-API erstellen und einen ORM (Object Relational Mapper) nutzen, um die Interaktion mit der Datenbank zu vereinfachen.
go get github.com/gin-gonic/gin
main.go
und schreiben den folgenden Code: 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 im Terminal .go
und navigieren Sie in Ihrem Browser zu localhost:8080/hello
. Sie sollten eine JSON-Antwort sehen, die Hello, World!
enthält. Verwenden Sie GORM als ORMgo get -u gorm.io/gorm
Fügen Sie in main.go
den folgenden Code hinzu:
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 }
Definieren Sie das Datenmodellmain.go
的新文件并编写以下代码:
type Todo struct { gorm.Model Task string Done bool }
在终端中运行 go run main.go
,然后在浏览器中导航到 localhost:8080/hello
。您应该会看到一条包含 Hello, World!
的 JSON 响应。
GORM 是一个 Go 语言的开源 ORM,简化了与数据库的交互。首先,安装 GORM:
go run main.go migrate
在 main.go
中,添加如下代码:
go run main.go migrate --migration-dir=./migrations up
让我们定义一个名为 Todo
Todo
definieren: // 创建 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) }
rrreee
In jeder Funktion verwenden Sie GORM für Datenbankoperationen, zum Beispiel:Das obige ist der detaillierte Inhalt vonWie erstelle ich eine RESTful-API mit Golang und verwende ein ORM?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!