backup-pro/rest-client

一个简单的REST客户端,用于以RESTful方式与Backup Pro安装进行交互

0.1.1 2016-07-25 08:33 UTC

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');