>백엔드 개발 >Golang >Golang 학습 웹 프레임워크 시작하기

Golang 학습 웹 프레임워크 시작하기

王林
王林원래의
2023-06-24 08:33:222029검색

Golang은 효율성이 높고 동시성이 높은 프로그래밍 언어입니다. 점점 더 많은 개발자가 Golang을 사용하여 다양한 유형의 애플리케이션을 구축하기 시작했습니다. 그중 웹 애플리케이션은 Golang의 가장 일반적인 애플리케이션 시나리오 중 하나입니다. 이 기사에서는 Golang에서 일반적으로 사용되는 웹 프레임워크와 기본 사용법을 소개합니다.

1. 일반 Golang 웹 프레임워크

  1. Gin

Gin은 풍부한 기능과 우수한 성능을 제공하는 빠르고 효율적인 웹 프레임워크입니다. Gin의 API 디자인은 간단하고 이해하기 쉽기 때문에 Gin은 REST API 및 마이크로서비스 애플리케이션을 구축하는 데 매우 적합합니다. Gin은 미들웨어, 라우팅 그룹화, JSON/XML 직렬화와 같은 일반적인 웹 기능을 제공합니다.

  1. Beego

Beego는 라우팅, 미들웨어, 템플릿 렌더링, ORM과 같은 일반적인 웹 구성 요소를 포함하고 웹 애플리케이션 개발에 필요한 일련의 기능을 제공하는 완전한 웹 프레임워크입니다. Beego는 대규모 웹 애플리케이션을 쉽게 구축할 수 있으며 RESTful API, Websocket 및 기타 기능을 지원합니다.

  1. Echo

Echo는 표준 라이브러리와 일부 타사 패키지를 사용하여 라우팅, 미들웨어, 템플릿 렌더링 등 일부 기능을 제공하는 경량, 고성능, 확장이 쉬운 웹 프레임워크입니다. Echo의 성능은 매우 좋으며 RESTful API 및 마이크로서비스를 구축하는 데 매우 적합합니다.

2. Gin 프레임워크 시작하기

소개할 첫 번째 프레임워크로 Gin을 선택하여 간단한 웹 애플리케이션을 구축하는 방법을 살펴보겠습니다.

  1. Install Gin

다음 명령을 사용하여 Gin 프레임워크를 설치할 수 있습니다.

go get -u github.com/gin-gonic/gin
  1. Hello World

다음은 Gin 프레임워크를 사용하여 생성된 Hello World의 예입니다.

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.String(200, "Hello, world!")
    })
    r.Run()
}

먼저 다음을 가져옵니다. Gin 프레임워크 패키지. 그런 다음 Gin 인스턴스를 생성하고 "Hello, world!" 문자열을 반환하는 GET 경로를 등록합니다. 마지막으로 Run 메서드를 사용하여 웹 애플리케이션을 시작하고 포트에서 수신 대기합니다.

curl을 사용하여 애플리케이션 요청:

$ curl http://localhost:8080/
Hello, world!
  1. Routing

라우팅은 요청을 핸들러 기능과 연결하는 웹 애플리케이션의 핵심 구성 요소입니다.

다음은 간단한 예입니다.

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()

    r.GET("/ping", func(c *gin.Context) {
        c.String(200, "pong")
    })

    r.GET("/hello/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.String(200, "Hello, %s", name)
    })

    r.POST("/login", func(c *gin.Context) {
        username := c.PostForm("username")
        password := c.PostForm("password")
        c.JSON(200, gin.H{"username": username, "password": password})
    })

    r.Run()
}

우리는 세 가지 경로를 사용합니다.

  • /ping 경로는 "pong" 문자열을 반환합니다.
  • /hello/:name 경로는 매개변수 이름을 받고 "Hello"를 반환합니다. " , name" 이 문자열은
  • /login 경로로, POST 요청을 수신하고 요청된 사용자 이름과 비밀번호를 반환합니다.
  1. 미들웨어

미들웨어는 요청이 핸들러에 도달하기 전후에 작업을 수행할 수 있는 Gin 프레임워크의 중요한 기능입니다.

다음은 Gin 미들웨어를 사용하는 예입니다.

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    "time"
)

func CustomMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        t := time.Now()
        fmt.Println("Starting middleware")
        c.Set("request_time", t)
        c.Next()
        fmt.Println("Ending middleware")
        latency := time.Since(t)
        fmt.Printf("Latency: %v
", latency)
    }
}

func main() {
    r := gin.Default()
    r.Use(CustomMiddleware())

    r.GET("/", func(c *gin.Context) {
        c.String(200, "Hello, world!")
    })

    r.Run()
}

요청의 시작 시간을 기록하는 CustomMiddleware라는 미들웨어 함수를 만든 다음 요청을 핸들러 함수에 전달하고 완료되면 요청 종료를 처리합니다.

미들웨어를 Gin 인스턴스에 등록하고 루트 경로에서 간단한 핸들러 함수를 사용하여 "Hello, world!" 문자열을 반환했습니다.

애플리케이션을 실행하면 출력에서 ​​미들웨어 기록을 볼 수 있습니다.

Starting middleware
Ending middleware
Latency: 277.1µs

3. 요약

이 기사에서는 Golang에서 일반적으로 사용되는 세 가지 웹 프레임워크인 Gin, Beego 및 Echo를 간략하게 소개합니다. 또한 Gin 프레임워크를 사용하여 간단한 웹 애플리케이션을 만드는 방법과 라우팅 및 미들웨어를 사용하는 방법을 보여주었습니다.

Golang 웹 개발 학습은 웹 프레임워크 학습과 떼려야 뗄 수 없습니다. 그러나 다양한 웹 프레임워크는 다양한 애플리케이션 시나리오와 요구 사항을 대상으로 하며 개발자는 실제 상황에 따라 가장 적합한 프레임워크를 선택해야 합니다.

위 내용은 Golang 학습 웹 프레임워크 시작하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.