#環境
- CentOS 7
- PHP 7
- Laravel 5.3
#やりたいこと
curl -kv -d "email=hoge@gmail.com" https://hoge.com/registers
的なことを Laravel でやって、レスポンスを受け取りたい。
※実際にはフロントエンドからのリクエストをバックエンドに投げるBFF(Backend For Frontend)的なものを作りたい
#方法
Guzzle(PHPのHTTPクライアントライブラリ)を使う。
#インストール方法
AWSのSDKに Guzzle が入っているので、今回はそれを使用した。
composer.json
...
"aws/aws-sdk-php": "3.*"
...
#実装方法
routes/web.php
Route::post('registers', 'RegistersController@apply');
app/Http/Controllers/RegistersController.php
use GuzzleHttp\Exception\RequestException;
class RegistersController extends Controller
{
public function apply(Request $request)
{
$client = new \GuzzleHttp\Client(
[\GuzzleHttp\RequestOptions::VERIFY => false]
);
$res = $client->request(
'POST',
// ここにはレスポンスを返却してくれるURL(API)を設定
'https://hoge.com/registers',
[
'form_params' => [
'email' => request->get('email'),
]
]
);
return $res;
}
}
#解説
HTTPS通信できるようにする
[\GuzzleHttp\RequestOptions::VERIFY => false]
false
を指定することにより証明書の検証を回避できる。
(本番ではやらないけど)
##POSTデータの指定
form_params
を使えばPOSTするデータを定義できる。
※オプション一覧