Golang을 사용하여 RESTful API를 구축하고 ORM을 사용하는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-06-03 22:35:59
원래의
301명이 탐색했습니다.

Golang을 사용하고 ORM을 사용하여 RESTful API를 구축하려면 다음 단계가 필요합니다. Gin을 사용하여 API를 생성합니다. GORM을 ORM으로 설치하고 사용하세요. 데이터 모델을 정의하고 데이터베이스 마이그레이션을 적용합니다. CRUD API 경로를 만듭니다. 데이터베이스 작업에는 GORM을 사용하십시오. API 및 프런트엔드 애플리케이션을 배포합니다.

如何使用 Golang 构建 RESTful API 并使用 ORM?

Golang으로 RESTful API를 구축하고 ORM을 사용하는 방법

소개

RESTful API는 HTTP, URL, JSON과 같은 웹 표준을 사용하여 서버와 상호 작용하고 데이터를 가져오는 최신 애플리케이션 프로그래밍 인터페이스의 표준입니다. . 이 기사에서는 Golang을 사용하여 RESTful API를 구축하고 ORM(Object Relational Mapper)을 활용하여 데이터베이스와의 상호 작용을 단순화하는 방법을 알아봅니다.

전제 조건

  • Golang 1.16+ 설치
  • 데이터베이스 설치(예: MySQL 또는 PostgreSQL)

Gin으로 API 구축

Gin은 Go 애플리케이션 구축을 위한 오픈 소스 웹 프레임워크입니다. 먼저 다음 명령을 사용하여 Gin을 설치합니다.

go get github.com/gin-gonic/gin
로그인 후 복사

그런 다음 main.go라는 새 파일을 만들고 다음 코드를 작성합니다. 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 作为 ORM

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
}
로그인 후 복사

Run go run main을 터미널에서 실행합니다. .go를 클릭하고 브라우저에서 localhost:8080/hello로 이동하세요. Hello, World!가 포함된 JSON 응답이 표시됩니다.

GORM을 ORM으로 사용

GORM은 데이터베이스와의 상호 작용을 단순화하는 Go 언어의 오픈 소스 ORM입니다. 먼저 GORM을 설치하세요.

go run main.go migrate
로그인 후 복사

main.go에 다음 코드를 추가하세요.

go run main.go migrate --migration-dir=./migrations up
로그인 후 복사

Define the data model

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)
로그인 후 복사

테이블 생성 및 마이그레이션

API를 실행하기 전에 테이블을 생성하고 데이터베이스 스키마를 마이그레이션해야 합니다. 터미널에서 다음 명령을 실행하세요:

func getTodos(c *gin.Context) {
    var todos []Todo
    if err := DB.Find(&todos).Error; err != nil {
        // 处理错误
    }
    c.JSON(200, todos)
}
로그인 후 복사
이렇게 하면 마이그레이션 스크립트가 인쇄됩니다. 다음 명령을 실행하여 마이그레이션을 적용합니다.
    rrreee
  • CRUD API이제 CRUD API 경로를 정의할 수 있습니다.
  • rrreee
  • 각 함수에서 데이터베이스 작업에 GORM을 사용합니다. 예: rrreee연습 사례
  • The 다음은 우리가 구축한 API를 사용한 실제 사례입니다.
프런트엔드:

React 또는 Angular와 같은 JavaScript 프레임워크를 사용하여 프런트엔드를 만듭니다.

🎜🎜백엔드: 🎜Golang RESTful API를 사용하여 데이터베이스에서 데이터를 가져오고 업데이트합니다. 🎜🎜🎜배포: 🎜AWS 또는 Heroku와 같은 클라우드 플랫폼에 API와 프런트엔드를 배포합니다. 🎜🎜🎜이러한 방식으로 데이터베이스의 작업을 관리할 수 있는 완전한 기능의 애플리케이션을 갖게 됩니다. 🎜

위 내용은 Golang을 사용하여 RESTful API를 구축하고 ORM을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿