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