[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")
}