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

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

Mar 31, 2023 am 10:26 AM

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 を使用します。

1

2

3

4

5

6

7

8

9

10

11

12

13

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 関数を使用してカスタム リクエストを作成することもできます。例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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

1

2

3

4

5

6

7

8

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

1

2

3

4

5

6

7

8

9

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

1

2

3

4

5

6

7

8

9

10

11

12

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

1

2

3

4

5

6

7

8

9

10

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか? GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか? Mar 10, 2025 pm 05:38 PM

この記事では、ユニットテストのためにGOのモックとスタブを作成することを示しています。 インターフェイスの使用を強調し、模擬実装の例を提供し、模擬フォーカスを維持し、アサーションライブラリを使用するなどのベストプラクティスについて説明します。 articl

Goでユニットテストをどのように書きますか? Goでユニットテストをどのように書きますか? Mar 21, 2025 pm 06:34 PM

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか? GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか? Mar 10, 2025 pm 03:20 PM

この記事では、GENICSのGOのカスタムタイプの制約について説明します。 インターフェイスがジェネリック関数の最小タイプ要件をどのように定義するかを詳しく説明し、タイプの安全性とコードの再利用性を改善します。 この記事では、制限とベストプラクティスについても説明しています

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか? トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか? Mar 10, 2025 pm 05:36 PM

この記事では、トレースツールを使用してGOアプリケーションの実行フローを分析します。 手動および自動計装技術について説明し、Jaeger、Zipkin、Opentelemetryなどのツールを比較し、効果的なデータの視覚化を強調しています

PPROFツールを使用してGOパフォーマンスを分析しますか? PPROFツールを使用してGOパフォーマンスを分析しますか? Mar 21, 2025 pm 06:37 PM

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

Goの反射パッケージの目的を説明してください。いつリフレクションを使用しますか?パフォーマンスへの影響は何ですか? Goの反射パッケージの目的を説明してください。いつリフレクションを使用しますか?パフォーマンスへの影響は何ですか? Mar 25, 2025 am 11:17 AM

この記事では、コードのランタイム操作に使用されるGoの反射パッケージについて説明します。シリアル化、一般的なプログラミングなどに有益です。実行やメモリの使用量の増加、賢明な使用と最高のアドバイスなどのパフォーマンスコストについて警告します

GOでテーブル駆動型テストをどのように使用しますか? GOでテーブル駆動型テストをどのように使用しますか? Mar 21, 2025 pm 06:35 PM

この記事では、GOでテーブル駆動型のテストを使用して説明します。これは、テストのテーブルを使用して複数の入力と結果を持つ関数をテストする方法です。読みやすさの向上、重複の減少、スケーラビリティ、一貫性、および

sync.waitgroupを使用して、複数のゴルチンが完了するのを待つ方法 sync.waitgroupを使用して、複数のゴルチンが完了するのを待つ方法 Mar 19, 2025 pm 02:51 PM

この記事では、sync.waitgroupを使用する方法について説明します。同時操作の管理、初期化、使用、一般的な落とし穴、およびベストプラクティスの詳細について説明します。

See all articles