6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GuzzleのJSONでのPOSTに大変苦労したお話

Posted at

##who are you?
Guzzle使うから〜と聞いた時に本当に1mmも知りませんでした()

ギリギリcurlは触ったことはあるし、ただいつもAPIへ通信していたのが、
何故かajaxばかりの環境で育ってきた僕

育ってきた環境が違うから〜知らない言語はしょうがない〜

・・・(ー_ー)

それでもGuzzleを使うと言うことであれば、
やらなきゃならない事がある><

・・・

###環境
PHP:7系
Guzzle:6系
Laravel:7系(例題はLaravelでの実装ですが他もほぼほぼ変わらないと思います)

###Guzzleを使ったAPI通信

GuzzleSampleController.php

    $client = new Client();

    $options = [
        'header' => [
            'Authorization' => $token,
            'Content-Type' => 'application/json',
        ],
        'form_params' => [
            'id1' => $id1,
        ],
    ];

$response = $client->request('POST', $url, $option);

上の形でresponseが取得出来るはずです

ではJSONで送りたい場合は?

###JSONでのPOST

GuzzleSampleController.php
    $client = new Client();

    $headers = [
        'Authorization' => 'Bearer ' . $token,
        'Content-Type' => 'application/json',
    ];
    $options = [
        'id1' => $id1),
    ];

    $response =  $client->request('POST', $url, [
        'json' => $options,
        'headers' => $headers,
    ]);

###Guzzleを使ってみた感想
PHPからAPIを叩く事がなかったので、じゃあなんで今までajaxにばかり頼る所にしか
いなかったのか。
そこは同期か非同期かの違いだけなのかな?
ただあまり処理があっちこっち飛んだり
PHPからJSに値渡さないといけないし
やることがバラバラになるイメージがあるので、PHPだけで完結するのもありなのだなと
今回の習得した結果です

###コメントください
ツッコミとかなんでも、、、もしあればコメント頂けると
今後の励みにしたいと思います。

ありがとうございました。

6
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?