GO

[Go]Gin Framework 시작하기

[Go]Gin Framework 시작하기

Gin이란 Go 언어에서 사용되는 웹 프레임워크로 Python과 Flask의 관계와 비슷하다.

Gin 시작하기

Gin 설치하기
go get github.com/gin-gonic/gin
Gin 설치시 오류 해결 방법

xcrun: error: unable to exec Xcode native xcrun (Permission denied).

sudo xcode-select --reset
Gin 웹 서버 만들기
package main

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

func main() {
  r := gin.Default()
  r.GET("/ping", func(c *gin.Context) {
    c.JSON(200, gin.H{
      "message": "pong",
    })
  })
  r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

import "net/http" : http.StatusOk 사용할 경우 import

Gin 이해하기

1. Gin 엔진 만들기

1-1. logger & recovery 사용할 경우

Default 사용하면 logger와 recovery를 사용하게 된다.

r := gin.Default()
1-1. logger & recovery 사용하지 않을 경우

logger와 recovery를 사용하지 않을 경우 New로 생성한다.

r := gin.New()

2. Routing 설정

2-1. URL 바인딩
r.GET("/url/path", handleFunc)
r.POST("/url/path", handleFunc)
r.HEAD("/url/path", handleFunc)
r.OPTIONS("/url/path", handleFunc)
r.PUT("/url/path", handleFunc)
r.DELETE("/url/path", handleFunc)
r.Handle("GET", "/url/path", handleFunc)
2-2. Parameter 추가
r.GET("/user/:id", handleFunc ) // ----> /user/1, /user/2, ...
r.GET("/user/:id/*action", handleFunc ) // ----> /user/1/info, user/1/info/age, ...
r.GET("/user/groups", handleFunc ) // ----> /user/groups

3. 핸들러 함수

핸들러 함수
package main

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

func main() {

   r := gin.Default()

   r.GET("/ping", handleFunc)
 
   r.Run(":5000")
}
// 핸들러 함수
func handleFunc(c *gin.Context) {
  c.JSON(200, gin.H{
    "message": "pong",
  })
}

// 리턴 값 없는 핸들러 함수
// func handleFunc(c *gin.Context) {
//	return
// }
익명함수
package main

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

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

  r.GET("/ping", func(c *gin.Context) {
    c.JSON(200, gin.H{
      "message": "pong",
    })
  })

  r.Run(":5000")
}

 

최신글