karaden-prg / karaden-prg-php
PHP library for the Karaden API.
Installs: 2 540
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- ext-mbstring: *
- php-http/client-common: ^2.6
- php-http/discovery: ^1.14
- php-http/httplug: ^2.3
- php-http/logger-plugin: ^1.3
- php-http/message-factory: ^1.0
- psr/http-client: ^1.0
- psr/http-message: ^1.0 || ^2.0
- psr/log: ^1.0 || ^2 || ^3
Requires (Dev)
- guzzlehttp/psr7: ^2.4
- php-http/message: ^1.13
- php-http/mock-client: ^1.5
- phpunit/phpunit: ^9.5
README
Karaden PHPライブラリは、PHPで書かれたアプリケーションからKaraden APIへ簡単にアクセスするための手段を提供します。
それにはAPIレスポンスから動的に初期化するAPIリソースの一連のクラス定義が含まれているため、Karaden APIの幅広いバージョンと互換性があります。
インストール方法
パッケージを変更しないならば、このソースコードは必要ありません。
パッケージを使用したいだけならば、下記を実行するだけです。
composer require karaden-prg/karaden-prg-php
動作環境
PHP 7.4~
このライブラリはHTTPクライアントを抽象化するライブラリであるHTTPlugを使用しています。
使用する環境に合わせ、いずれかのHTTPlugのクライアント/アダプタをインストールする必要があります。
例えばGuzzleの7.xを使用する場合、下記を実行する必要があります。
composer require php-http/guzzle7-adapter
使い方
Karadenでテナントを作成し、プロジェクト毎に発行できるトークンを発行する必要があります。
作成したテナントID(テナントIDはテナント選択画面で表示されています)は、Config::$tenantId
に、発行したトークンはConfig::$apiKey
にそれぞれ設定します。
\Karaden\Config::$apiKey = '<トークン>'; \Karaden\Config::$tenantId = '<テナントID>'; $params = \Karaden\Param\Message\MessageCreateParams::newBuilder() ->withServiceId(1) ->withTo('09012345678') ->withBody('本文') ->build(); $message = \Karaden\Model\Message::create($params);
リクエスト毎の設定
同一のプロセスで複数のキーを使用する必要がある場合、リクエスト毎にキーやテナントIDを設定することができます。
$params = \Karaden\Param\Message\MessageDetailParams::newBuilder() ->withId('<メッセージID>') ->build(); $requestOptions = \Karaden\RequestOptions::newBuilder() ->withApiKey('<トークン>') ->withTenantId('<テナントID>') ->build(); $message = \Karaden\Model\Message::detail($params, $requestOptions);
HTTPクライアントの明示的な指定
通常、PSR-18のインタフェースを実装したHTTPクライアントを指定しなくても適切な実装を検索し、検出したHTTPクライアントを使用しますが、明示的に指定することもできます。
HTTPクライアントに依存したタイムアウトやプロキシなどのような設定を必要とするユースケースにおいて使用します。
\Karaden\Config::$httpClient = \Http\Adapter\Guzzle7\Client::createWithConfig(['timeout' => <秒>]);
タイムアウトについて
通信をするファイルサイズや実行環境の通信速度によってはHTTP通信時にタイムアウトが発生する可能性があります。
何度も同じような現象が起こる際は、ファイルサイズの調整もしくはHTTPクライアントの明示的な指定
からHTTPクライアントの指定及びタイムアウトの時間を増やして、再度実行してください。