10yroの開発日記

福岡にある株式会社10yro(トイロ)のエンジニアが書いています

Laravelで外部APIへアクセスする方法

弊社ではフォトシンス社のAkerunというスマートロックと連携するシステムの開発をしています。

akerun.com

AkerunにはAPIが用意されているので、そのAPIを利用してAkerunの情報を取得する等が可能です。
今回はLaravelを利用して外部APIへアクセスする方法についてご紹介いたします。
LaravelにはGuzzleというライブラリがあるので、それを利用してAPIへアクセスします。
docs.guzzlephp.org

Guzzleのインストール

以下のコマンドでGuzzleをインストールします。 (composerはインストールされている前提です)

composer require guzzlehttp/guzzle

API呼び出しの実装

以下に実装例を記載します。

<?php
use GuzzleHttp\Client;

class ApiAccessor
{
    public function getAccesses()
    {
        $url = "https://api.akerun.com/v3/organizations/{ORGANIZATION_ID}/accesses";

        // Guzzleを使ってAPIに接続
        $client = new Client();
        $response = $client->request(
            'GET',
            $url, // URLを設定
            [
                'headers' => 
                [
                    'Authorization' => "Bearer {$accessToken}"
                ],
                'debug' => false,
                'query' => $params, // パラメーターがあれば設定 ?foo=barの場合は $params = ['foo' => 'bar']
            ]
        );

        // レスポンスボディを取得
        $responseBody = $response->getBody()->getContents();
        
        return json_decode($responseBody);
    }
}

GuzzleのClientクラスのrequestメソッドを利用してアクセスします。
requestメソッドには、メソッド(今回はGET)、APIのURL、ヘッダー情報、パラメータ(query)をセットしています。
アクセスして取得したResponseBodyのContentsのJsonをデコードします。
簡単ですね。

最後に

弊社ではAkerunと連携したシステム開発のご対応が可能です。
もし、Akerunと連携したシステム開発についてご相談やご質問・その他ご不明な点などございましたら、以下の問合せフォームよりお気軽にご連絡ください。
その他システム開発についてもお気軽にご連絡ください。
10yro.co.jp