>  기사  >  백엔드 개발  >  Golang에서 API 쿼리를 만드는 방법

Golang에서 API 쿼리를 만드는 방법

PHPz
PHPz원래의
2023-03-31 10:26:131468검색

Golang은 비교적 새로운 프로그래밍 언어이지만 개발자들 사이에서 가장 먼저 선택되는 언어가 되었습니다. Golang의 높은 성능과 동시성은 애플리케이션을 개발할 때, 특히 확장 가능한 서비스를 구축할 때 이상적인 선택입니다. Golang의 API 쿼리는 기본적인 작업입니다. 이 글에서는 Golang에서 API 쿼리를 수행하는 방법을 소개합니다.

Introduction

API는 Application Programing Interface의 약자로, API 쿼리는 HTTP GET 요청을 사용하여 API 엔드포인트에 액세스하여 데이터를 얻는 작업을 의미합니다. 쿼리 API는 일반적으로 JSON 또는 XML 형식으로 응답 데이터를 제공하는 많은 백엔드 서비스에 필요합니다.

Golang에는 API 쿼리를 수행하는 방법이 여러 가지 있습니다. 표준 라이브러리의 net/http 패키지를 사용하는 것은 가장 일반적인 방법 중 하나입니다. 또한 grequests, gorequest, httpclient 및 Resty와 같은 API 쿼리를 수행하는 데 사용할 수 있는 일부 타사 패키지가 있습니다.

표준 라이브러리의 net/http 패키지를 사용한 API 쿼리

표준 라이브러리의 net/http 패키지를 사용하여 API 쿼리를 수행하려면 여러 단계가 필요합니다. 먼저, API 엔드포인트에 액세스하는 데 사용할 http 클라이언트를 생성해야 합니다. 다음 예에서는 http.DefaultClient를 사용합니다.

func main() {
    resp, err := http.DefaultClient.Get("https://jsonplaceholder.typicode.com/posts/1")
    if err != nil {
        log.Fatalln(err)
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Fatalln(err)
    }
    fmt.Println(string(body))
}

이 예에서는 http.DefaultClient를 사용하여 지정된 API 엔드포인트에 액세스하는 GET 요청을 보냅니다. ioutil 패키지의 ReadAll 함수를 사용하여 응답 본문을 문자열로 읽은 다음 이를 콘솔에 인쇄합니다.

http.NewRequest 함수를 사용하여 사용자 정의 요청을 생성할 수도 있습니다. 예:

func main() {
    req, err := http.NewRequest("GET", "https://jsonplaceholder.typicode.com/posts/1", nil)
    if err != nil {
        log.Fatalln(err)
    }

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        log.Fatalln(err)
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Fatalln(err)
    }
    fmt.Println(string(body))
}

이 예에서는 http.NewRequest를 사용하여 지정된 API 엔드포인트에 액세스하는 사용자 정의 GET 요청을 생성합니다. 그런 다음 http.DefaultClient.Do 함수를 사용하여 요청을 수행하고 이전 예제와 같이 응답을 처리합니다.

API 쿼리에 타사 패키지 사용

표준 라이브러리의 net/http 패키지 외에도 Golang에서 API 쿼리를 수행하는 데 사용할 수 있는 타사 패키지가 있습니다. 다음은 가장 인기 있는 몇 가지 예입니다.

  1. grequests
func main() {
    resp, err := grequests.Get("https://jsonplaceholder.typicode.com/posts/1", nil)
    if err != nil {
        log.Fatalln(err)
    }

    fmt.Println(resp.String())
}

이 예에서는 grequests 패키지를 사용하여 지정된 API 끝점에 GET 요청을 보내고 resp.String() 메서드를 사용하여 응답 본문을 변환합니다. 문자열로.

  1. gorequest
func main() {
    resp, _, errs := gorequest.New().Get("https://jsonplaceholder.typicode.com/posts/1").End()

    if errs != nil {
        log.Fatalln(errs)
    }

    fmt.Println(resp)
}

이 예에서는 gorequest 패키지를 사용하여 지정된 API 엔드포인트에 GET 요청을 보내고 resp 변수를 사용하여 응답을 처리합니다.

  1. httpclient
func main() {
    client := httpclient.Defaults(httpclient.Map{
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0",
    })
    resp, err := client.Get("https://jsonplaceholder.typicode.com/posts/1")

    if err != nil {
        log.Fatalln(err)
    }

    fmt.Println(resp)
}

이 예에서는 httpclient 패키지를 사용하여 사용자 정의 http 클라이언트를 생성하고 이를 사용하여 지정된 API 엔드포인트에 GET 요청을 보냅니다. 응답을 처리하기 위해 resp 변수를 사용합니다.

  1. resty
func main() {
    client := resty.New()
    resp, err := client.R().Get("https://jsonplaceholder.typicode.com/posts/1")

    if err != nil {
        log.Fatalln(err)
    }

    fmt.Println(resp.String())
}

이 예에서는 Resty 패키지를 사용하여 사용자 정의 http 클라이언트를 생성하고 이를 사용하여 지정된 API 엔드포인트에 GET 요청을 보냅니다. resp.String() 함수를 사용하여 응답 본문을 문자열로 변환합니다.

결론

이 글에서는 표준 라이브러리의 net/http 패키지나 타사 패키지를 사용하여 Golang에서 API 쿼리를 만드는 방법을 소개했습니다. 대부분의 API 쿼리 시나리오에서 표준 라이브러리의 net/http 패키지는 특히 간단한 GET 요청의 경우 충분히 잘 작동합니다. 더 복잡한 요청과 응답을 처리해야 하는 경우 grequests, gorequest, httpclient 및 Resty와 같은 타사 패키지를 사용해 볼 수 있습니다.

API 쿼리에 Golang을 사용하면 웹 서비스에서 데이터를 쉽게 얻을 수 있으며 Golang의 높은 성능과 동시성 덕분에 대규모 데이터를 처리하는 데 이상적입니다. 실제 개발에서는 필요에 따라 API 쿼리를 수행하는 데 가장 적합한 방법을 선택할 수 있습니다.

위 내용은 Golang에서 API 쿼리를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.