スポンサーリンク

PHPのHTTPクライアントライブラリ「Guzzle」の使い方【Guzzle7対応】

PHP で外部 API を叩くときによく使われる Guzzle ですが、最新のバージョンだとネットに載ってる情報では動作しなかった(エラーになる)ので、2021 年 7 月時点の最新版である Guzzle7 での基本的な書き方についてまとめておきます。

$client = new Client([
    'base_uri' => 'https://app.rakuten.co.jp'
]);
$param = [
    'applicationId' => *****************,
    'genreId' => 0
];
$response = $client->request(
    'GET',
    '/services/api/IchibaGenre/Search/20140222',
    ['query' => $param]);
var_dump(json_decode($response->getBody(), true));

※ サンプルAPIとして 楽天API を使わせていただきました

大きくは変わっていないのですが、1点 パラメータの指定方法 が異なっていました。

今までは $param のようにパラメータの配列をそのまま渡すだけだったようですが Guzzle7 では ['query' => $param] のように query をキーとしてもう一段階多重配列にしてあげる必要があります。

POST で使うボディパラメータの場合は ['body' => $param] となります。

また、下記は既存と変化はないですが間違えやすい注意点です。

  • base_uribase_url ではないのでスペルミスに注意
  • base_uri にはパスを含ませない(https://app.rakuten.co.jp/services/api は NG)

それにしてもこんなに簡単に API が叩けるなんて素晴らしい。

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