ホームページ  >  記事  >  バックエンド開発  >  GolangでAPIクエリを作成する方法

GolangでAPIクエリを作成する方法

PHPz
PHPzオリジナル
2023-03-31 10:26:131467ブラウズ

Golang は比較的新しいプログラミング言語ですが、開発者の間では最初の選択肢となっています。 Golang は高いパフォーマンスと同時実行性を備えているため、アプリケーション開発時、特にスケーラブルなサービスを構築する際に理想的な選択肢となります。 Golang の API クエリは基本的な作業ですが、この記事では Golang で API クエリを実行する方法を紹介します。

はじめに

API とは Application Programming Interface の略で、API クエリとは HTTP GET リクエストを使用して API エンドポイントにアクセスし、データを取得する操作を指します。クエリ API は、通常、応答データを JSON または XML 形式で提供する多くのバックエンド サービスで必要です。

Golang では、API クエリを実行する方法がいくつかあります。標準ライブラリの net/http パッケージの使用は、最も一般的な方法の 1 つです。さらに、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 エンドポイント。次に、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 リクエストを送信し、 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 クライアントを作成し、そのクライアントを使用して GET リクエストを指定された API エンドポイントに送信します。 resp.String() 関数を使用して、応答本文を文字列に変換します。

結論

この記事では、標準ライブラリの net/http パッケージまたはサードパーティ パッケージを使用して、Golang で API クエリを作成する方法を紹介しました。ほとんどの API クエリ シナリオでは、特に単純な GET リクエストの場合、標準ライブラリの net/http パッケージで十分に機能します。より複雑なリクエストとレスポンスを処理する必要がある場合は、grequests、gorequest、httpclient、resty などのサードパーティ パッケージを試すことができます。

API クエリに Golang を使用すると、Web サービスからデータを簡単に取得できます。また、Golang の高いパフォーマンスと同時実行性により、大規模なデータの処理に最適です。実際の開発では、ニーズに基づいて API クエリを実行するために最適な方法を選択できます。

以上がGolangでAPIクエリを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。