Go 와 Gin 웹 프레임워크를 사용하여 RESTFul 웹 API를 개발한다.
파이썬과 flask와의 관계라고 생각하면 된다.
이정도까지 알고 원래의 목적인 RESTful API를 만들어보자.
하지만 json 형식은 필드명을 대문자로 하지 않기 때문에 필드 타입 옆에 json 필드명을 정의해준다.
type player struct {
Name string `json: "name"`
Age int `json: "age"`
Position string `json: "position"`
Country string `json: "country"`
}
var players = []player {
{name: "Leo Messi", age: 32, position: "Forward", country: "Argentina"},
{name: "Ronaldo", age: 32, position: "Forward", country: "Portugal"},
{name: "Morata", age: 33, position: "Forward", country: "Spain"},
}
func getPlayers(c *gin.Context){
c.IndentedJSON(http.StatusOK, players)
}
r := gin.Default()
r.GET("/players", getPlayers)
r.Run("localhost:8080")
*gin.Default() 는 gin.New()와 다르게 로깅과 복구 기능을 활성화하여 제공한다.
즉 Logging middleware 와 Recovery middleware 를 제공하는데 gin.New() 인스턴스를 생성하여 개발하려면 수동으로 위 미들웨어 기능을 추가해야 한다.
r.Use(gin.Logger())
r.Use(gin.Recovery())
http://localhost:8080/players 로 접근을 하면 우리가 만든 데이터를 확인할 수 있다.[
{
"Name": "Leo Messi",
"Age": 32,
"Position": "Forward",
"Country": "Argentina"
},
{
"Name": "Ronaldo",
"Age": 32,
"Position": "Forward",
"Country": "Portugal"
},
{
"Name": "Morata",
"Age": 33,
"Position": "Forward",
"Country": "Spain"
}
]