[go] Go 언어를 사용한 RESTful API의 데이터 조회 방법

RESTful API는 웹 응용 프로그램에서 데이터를 조회하는 데 자주 사용되는 방식 중 하나입니다. Go 언어를 사용하여 RESTful API의 데이터 조회를 구현하는 방법을 알아보겠습니다.

GET 요청을 사용한 데이터 조회

Go 언어에서 GET 요청을 사용하여 RESTful API에서 데이터를 조회하는 방법은 간단합니다. 다음은 Go 언어로 GET 요청을 보내고 응답을 처리하는 예제 코드입니다.

import (
    "fmt"
    "log"
    "net/http"
    "io/ioutil"
)

func main() {
    // GET 요청을 보낼 URL
    url := "https://api.example.com/data"

    // HTTP GET 요청
    res, err := http.Get(url)
    if err != nil {
        log.Fatal(err)
    }
    defer res.Body.Close()

    // 응답 본문 읽기
    body, err := ioutil.ReadAll(res.Body)
    if err != nil {
        log.Fatal(err)
    }

    // 응답 출력
    fmt.Println(string(body))
}

위의 예제 코드에서는 net/http 패키지를 사용하여 GET 요청을 보내고, ioutil 패키지를 사용하여 응답 본문을 읽었습니다. 응답은 fmt.Println을 사용하여 출력됩니다.

JSON 응답 처리

RESTful API에서는 주로 JSON 형식으로 데이터를 반환합니다. 따라서 응답 데이터를 처리하기 전에 JSON을 파싱해야 합니다. 다음은 Go 언어에서 JSON 응답을 처리하는 예제 코드입니다.

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

type Data struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
    // 필요한 필드 추가
}

func main() {
    // GET 요청을 보낼 URL
    url := "https://api.example.com/data"

    // HTTP GET 요청
    res, err := http.Get(url)
    if err != nil {
        log.Fatal(err)
    }
    defer res.Body.Close()

    // 응답 본문 읽기
    body, err := ioutil.ReadAll(res.Body)
    if err != nil {
        log.Fatal(err)
    }

    // JSON 파싱
    var data Data
    err = json.Unmarshal(body, &data)
    if err != nil {
        log.Fatal(err)
    }

    // 파싱된 데이터 사용
    fmt.Println(data.ID)
    fmt.Println(data.Name)
}

위의 예제 코드에서는 encoding/json 패키지를 사용하여 JSON 응답을 파싱합니다. Data 구조체는 응답 데이터의 필드와 일치하도록 정의되어 있습니다. 파싱된 데이터는 사용자가 원하는 대로 처리할 수 있습니다.

참고 자료

Go 언어를 사용하여 RESTful API의 데이터 조회는 간단하면서도 강력한 기능을 제공합니다. 이를 통해 웹 응용 프로그램에서 필요한 데이터를 쉽게 조회할 수 있습니다. 만약 Go 언어에 대해서 더 자세히 알고 싶다면 공식 문서와 참고 자료를 참조해주세요.