Go言語をWebAPIと連携する具体例

WordPress

Go言語でWebAPIと連携する具体例を示します。この例では、JSONPlaceholderの https://jsonplaceholder.typicode.com/posts エンドポイントからデータを取得し、結果を出力します。

ステップ1: 新しいGoプロジェクトを作成

まず、新しいGoプロジェクトを作成します。

mkdir go-web-api-example
cd go-web-api-example
go mod init example.com/go-web-api

ステップ2: main.goファイルを作成

次に、main.goファイルを作成し、以下のコードを記述します。

package main

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

type Post struct {
UserID int `json:"userId"`
ID int `json:"id"`
Title string `json:"title"`
Body string `json:"body"`
}

func main() {
// JSONPlaceholderのエンドポイントを指定
url := "https://jsonplaceholder.typicode.com/posts"

// HTTPリクエストを作成
resp, err := http.Get(url)
if err != nil {
log.Fatalf("Error fetching data: %v", err)
}
defer resp.Body.Close()

// レスポンスボディを読み取る
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalf("Error reading response body: %v", err)
}

// JSONデータを構造体スライスに変換
var posts []Post
err = json.Unmarshal(body, &posts)
if err != nil {
log.Fatalf("Error unmarshaling JSON: %v", err)
}

// 結果を出力
for _, post := range posts {
fmt.Printf("UserID: %d, ID: %d, Title: %s\n", post.UserID, post.ID, post.Title)
}
}

ステップ3: プログラムを実行

プログラムを実行するには、ターミナルで以下のコマンドを入力します。

go run main.go

実行すると、JSONPlaceholderから取得したデータが出力されます。

UserID: 1, ID: 1, Title: sunt aut facere repellat provident occaecati excepturi optio reprehenderit
UserID: 1, ID: 2, Title: qui est esse
UserID: 1, ID: 3, Title: ea molestias quasi exercitationem repellat qui ipsa sit aut
...

コード説明

  1. net/http パッケージを使用して、http.Get関数でWebAPIにGETリクエストを送信します。
  2. io/ioutil パッケージの ReadAll 関数を使って、レスポンスボディを読み取ります。
  3. encoding/json パッケージの Unmarshal 関数を使って、JSONデータを構造体スライスに変換します。
  4. 変換した構造体スライスをループして、必要なデータを出力します。

この例では、JSONPlaceholderの /posts エンドポイントからデータを取得しましたが、任意のWebAPIと連携するためには、そのAPIのレスポンス構造に合わせて構造体を定義する必要があります。また、認証が必要な場合は、リクエストヘッダーを設定する必要があります。

コメント

タイトルとURLをコピーしました