jamiecressey/restful-client

通用的RESTful API客户端

0.9.0 2015-10-15 07:37 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:54:44 UTC


README

Build Status Package Version Package Downloads

通用的RESTful PHP客户端

一个用于与JSON API交互的通用RESTful PHP客户端。

用法

要使用此客户端,您只需导入ApiClient并使用API密钥、密钥和URL端点进行初始化

$api = new RestfulClient\ApiClient('#your_api_key', '#your_api_secret', '#your_api_endpoint');

现在您已经拥有了一个RESTful API对象,您可以开始发送请求。

请求认证

所有请求默认包含以下头部

  • 'X-Authentication-Key' - 创建ApiClient对象时提供的API密钥。
  • 'X-Authentication-Nonce' - 一个递增数字,用于防止请求重放。默认情况下,这是当前纪元的毫秒数。
  • 'X-Authentication-Signature' - 使用创建ApiClient对象时提供的API密钥对nonce进行SHA512 HMAC签名。

发送请求

该框架支持GET、PUT、POST和DELETE请求

$api->get('/books/');
$api->post('/books/', array('title' => 'Twilight', 'author' => 'Stephenie Meyer'));
$api->put('/book/Twilight/', array('release_date' => '06/09/2006'));
$api->delete('/book/Twilight/');

验证请求

内置了两个助手来验证请求的成功。 ok()检查20x状态码并返回布尔值,errors()如果状态码不是20x,则返回正文内容作为关联数组

$req = $api->get('/books/');

if( $req->ok() ) {
    echo 'Success!';
} else {
    echo $req->errors();
}

扩展客户端

客户端可以被扩展以更具体地适用于应用程序,例如$api->create_book('Twilight', 'Stephenie Meyer');

class YourAPI extends \RestfulClient\ApiClient 
{
    public function __construct($api_key, $api_secret)
    {
        $api_url = 'https://api.yourdomain.com'
        parent::__construct($api_key, $api_secret, $api_url);
    }

    public function create_book($title, $author)
    {
        $data = array(
            'title' => $title,
            'author' => $author,
        );

        return $this->post('/books/', $data);
    }
}

贡献

欢迎所有贡献,无论是新/改进的功能还是对任何开放错误的响应。