jaeger-app / rest-client
此包已被弃用,不再维护。未建议替代包。
一个简单的REST客户端,以RESTful方式与基于Jaeger的安装交互
0.1.1
2016-07-28 19:07 UTC
Requires
- php: >=5.4.0
- lib-curl: *
- crell/api-problem: ^1.7
- nocarrier/hal: ^0.9.12
- philipbrown/signature-php: ^5.1
Requires (Dev)
- phpunit/phpunit: 4.*
This package is auto-updated.
Last update: 2023-11-18 01:40:47 UTC
README
一个简单的REST客户端,用于与Jaeger REST API安装交互。
安装
将 jaeger-app/rest-client
添加到 composer.json
的要求中
$ composer require jaeger-app/rest-client
简单示例
use \JaegerApp\Rest\Client; $client = new Client(); $backups = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/backups');
认证
Jaeger使用HMAC-SHA认证,这是一种简单的密钥/密钥模式,用于创建哈希签名。您可以从您的个人Jaeger安装中获取/设置API密钥和密钥,以及API URL端点。
错误处理
如果请求出现问题,库将返回一个ApiProblem对象。以下是一个示例
use \JaegerApp\Rest\Client; use \JaegerApp\Rest\ApiProblem; $client = new Client(); $result = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/myendpoint'); if($result instanceof ApiProblem) { if($result->getStatus() == 403) { //authentication issue } $result->getTitle() //API problem response title $result->getDetail() //API problem response details }
Hal响应
对于Jaeger API的所有成功响应,库将返回一个\JaegerApp\Rest\Client\Hal
实例,它是\Nocarrier\Hal的包装器。
use \JaegerApp\Rest\Client; use \JaegerApp\Rest\Hal; $client = new Client(); $result = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/myendpoint'); if($result instanceof Hal) { $data = $result->getData(); $resources = $result->getResources(); }
示例
由于Jaeger遵循[Richardson成熟度模型](Richardson Maturity Model),因此每个HTTP动词都提供了辅助方法。以下是某些简单用例示例及其实现
备份
use \JaegerApp\Rest\Client; $client = new Client(); $result = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->post('/myendpoint');
更新设置
use \JaegerApp\Rest\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 \JaegerApp\Rest\Client; $client = new Client(); $settings = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/settings');
获取存储位置
use \JaegerApp\Rest\Client; $client = new Client(); $storage_locations = $client->setApiKey($api_key) ->setApiSecret($api_secret) ->setSiteUrl($api_endpoint_url) ->get('/storage');