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_uri
はbase_url
ではないのでスペルミスに注意base_uri
にはパスを含ませない(https://app.rakuten.co.jp/services/api
は NG)
それにしてもこんなに簡単に API が叩けるなんて素晴らしい。