Go는 빠르고 강력한 언어로서 RESTful API 개발에 적합한 다양한 내장 패키지를 제공합니다. JSON은 데이터 교환을 위한 표준 형식으로 자주 사용되며, Go에서는 JSON을 쉽게 다룰 수 있습니다. 이번 글에서는 Go를 사용하여 JSON을 이용한 RESTful API를 개발하는 방법에 대해 알아보겠습니다.
목차
Go에서 RESTful API 개발
Go는 net/http
패키지를 통해 쉽고 간단하게 HTTP 서버를 구축할 수 있습니다. RESTful API는 HTTP Method(GET, POST, PUT, DELETE)을 통해 자원을 다루는 방식을 따르며, Go를 이용하면 이러한 HTTP Method를 쉽게 처리할 수 있습니다.
package main
import (
"encoding/json"
"net/http"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
func getUser(w http.ResponseWriter, r *http.Request) {
user := User{ID: 1, Name: "John Doe"}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(user)
}
func main() {
http.HandleFunc("/user", getUser)
http.ListenAndServe(":8080", nil)
}
JSON 다루기
Go에서 JSON 데이터를 다루기 위해 내장된 encoding/json
패키지를 사용할 수 있습니다. 이 패키지를 활용하면 JSON 데이터를 Go 구조체로 언마샬링하거나, Go 구조체를 JSON으로 마샬링하는 작업을 쉽게 처리할 수 있습니다.
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
func main() {
jsonData := []byte(`{"id": 1, "name": "John Doe"}`)
var user User
json.Unmarshal(jsonData, &user)
user.ID = 2
updatedData, _ := json.Marshal(user)
}
RESTful API에 JSON 적용
위에서 정의한 User
구조체를 이용하여 간단한 RESTful API를 개발할 수 있습니다. 이를 통해 클라이언트와 서버 간에 JSON 데이터를 주고받는 RESTful API를 만들 수 있습니다.
func getUser(w http.ResponseWriter, r *http.Request) {
user := User{ID: 1, Name: "John Doe"}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(user)
}
결론
Go를 사용하여 JSON을 이용한 RESTful API를 개발하는 방법에 대해 알아보았습니다. net/http
패키지를 통해 간단하고 빠르게 HTTP 서버를 구축할 수 있으며, encoding/json
패키지를 활용하여 JSON 데이터를 쉽게 다룰 수 있습니다. 이를 통해 Go는 JSON을 이용한 RESTful API 개발에 매우 적합한 언어임을 확인할 수 있습니다.
참고 문헌:
- https://gobyexample.com/json
- https://golang.org/pkg/encoding/json/
- https://tutorialedge.net/golang/parsing-json-with-golang/
- https://tutorialedge.net/golang/creating-restful-api-with-golang/