テクニカル雑記帳です
【Guzzle】POST時のoptionの設定仕方
APIの条件が以下のようになっていて、JSONでオプションを送ってくれと言われている場合。
条件
Method: POST
uri: /{ID} //対象のIDを指定
Media type: application/json //JSONで送ってねと言われている
contents: required (array of string) //IDに対して追加する対象
<?php
$base_url = "https://hoge"; //ダミーです
$uri = "/" . $ID;
$method = "POST";
$okomes = ['contents' => ['ビタミン', 'ミネラル', '食物繊維']];
//接続
$client = new Client($base_url);
$options = [
'json' => $okomes, // ここにぶち込むと勝手にjsonにしてくれる
'http_errors' => false,
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json'
]
]);
$response = $client->request($method, $uri, $options);
$response_contents_json = $response->getBody()->getcontents();
🙂💬
GETだとパラメータに打ち込むことができたけど、POSTだとそれができずoptionに突っ込む必要があった。
その時にform_paramsを使ってbodyに打ち込むとBadRequest飛んできたりしてはまってしまった。
(bodyにぶち込むとWarnningでそもそもリクエストが飛ばないなど問題ありありでした。
公式ドキュメントはちゃんと読もう。
Guzzle-公式ドキュメント