[go] Go에서 JSON을 사용한 RESTful API 개발

Go는 빠르고 강력한 언어로서 RESTful API 개발에 적합한 다양한 내장 패키지를 제공합니다. JSON은 데이터 교환을 위한 표준 형식으로 자주 사용되며, Go에서는 JSON을 쉽게 다룰 수 있습니다. 이번 글에서는 Go를 사용하여 JSON을 이용한 RESTful API를 개발하는 방법에 대해 알아보겠습니다.

목차

  1. Go에서 RESTful API 개발
  2. JSON 다루기
  3. RESTful API에 JSON 적용
  4. 결론

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 개발에 매우 적합한 언어임을 확인할 수 있습니다.

참고 문헌: