backup-pro / rest-client
一个简单的REST客户端,用于以RESTful方式与Backup Pro安装进行交互
0.1.1
2016-07-25 08:33 UTC
Requires
- jaeger-app/rest-client: ^0.1
Requires (Dev)
- phpunit/phpunit: 4.*
This package is auto-updated.
Last update: 2024-09-18 03:48:01 UTC
README
一个简单的REST客户端,用于与Backup Pro安装进行交互。
安装
将 backup-pro/rest-client
添加到 composer.json
的依赖项中
$ composer require backup-pro/rest-client
简单示例
use \mithra62\BpApiClient\Client; $client = new Client(); $backups = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/backups');
身份验证
Backup Pro使用HMAC-SHA身份验证,这是一种简单的密钥/密钥对范式,用于创建哈希签名。您可以从您的个人Backup Pro安装中获取/设置API密钥和密钥,以及API URL端点。
错误处理
如果请求出现问题,库将返回一个 ApiProblem 对象。以下是一个示例
use \mithra62\BpApiClient\Client; use \mithra62\BpApiClient\ApiProblem; $client = new Client(); $backups = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/backups'); if($result instanceof ApiProblem) { if($result->getStatus() == 403) { //authentication issue } $result->getTitle() //API problem response title $result->getDetail() //API problem response details }
Hal响应
对于Backup Pro API的所有成功响应,库将返回一个 \mithra62\BpApiClient\Hal
对象实例,它是 \Nocarrier\Hal 的包装器。
use \mithra62\BpApiClient\Client; use \mithra62\BpApiClient\Hal; $client = new Client(); $backups = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/backups'); if($result instanceof Hal) { $data = $result->getData(); $resources = $result->getResources(); }
示例
由于Backup Pro遵循 [Richardson成熟度模型](Richardson Maturity Model),因此对于每个HTTP动词都有可用的辅助方法。以下是某些简单用例示例及其实现
备份
use \mithra62\BpApiClient\Client; $client = new Client(); $backups = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->post('/backups');
更新设置
use \mithra62\BpApiClient\Client; $client = new Client(); $settings = array('working_directory' => '/path/to/working_directory'); $update = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->put('/settings', $settings);
获取设置
use \mithra62\BpApiClient\Client; $client = new Client(); $settings = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/settings');
获取存储位置
use \mithra62\BpApiClient\Client; $client = new Client(); $storage_locations = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/storage');