rapidspike / rapidspike-api-wrapper-php
PHP 封装函数,用于与 RapidSpike API 交互。
Requires
- php: >=7.0.0
- guzzlehttp/guzzle: ~6.0
README
PHP 封装 RapidSpike API (v1)。
信息
RapidSpike 提供了一个 RESTful API,旨在使与它们服务的交互更加简洁和容易。RapidSpike 站点 100% 由 API 驱动,因此您在那里可以做到的任何事情都可以直接通过 API 完成。
要与 API 交互,您必须首先拥有一个允许访问 API 的 RapidSpike 订阅。然后,您需要在您的 账户设置区域 中生成 API 密钥。
此封装包是面向未来的,因为当新的端点可用时 - 它只是一个封装器,提供了一个标准化的方式来构建端点,打包请求数据并在 API 中进行身份验证。
安装
建议使用 Composer 和 Packagist 进行安装。但是,由于包的性质,开发活动不会过于活跃。
composer require rapidspike/rapidspike-api-wrapper-php
概念
端点链式调用
此封装包非常简单,但为您提供了一种标准化的方式来调用我们的 API。端点是使用每个路径段的功能构建的,或者在 callPath()
方法中直接构建。这利用了魔法方法,以便我们能够应对新的端点。
/*
* Read account API keys
* GET /accounts/api
*/
# Function-per-path method
$Client->accounts()->api()->via('get');
# callPath() method
$Client->callPath('accounts/api')->via('get');
如果您需要添加不适合此方法或存储在变量中的值,则 callPath()
方法更好,并且可以节省您声明动态函数名的麻烦。此外,段可以作为参数传递给段方法。
/*
* Read one website
* GET /websites/[uuid]
*/
# Segment (UUID) stored in varibale and passed as function param
$uuid = '30031b9b-5df8-4b19-8dfe-17bf5bac7654';
$Client->websites($uuid)->via('get');
所有请求都必须通过调用 via()
方法并传递一个 HTTP 请求动词(例如,get、post、put、delete)来结束。身份验证使用一对密钥(公共和私人)进行,这些密钥用于生成一个在 RapidSpike API 中进行检查的签名。
查询 & JSON 数据
可以在方法链中或之前添加查询或 JSON 数据。无论哪种方式,都必须在 via()
方法之前完成。
/*
* Read page 1 of all websites with 10 displayed per page
*/
# Add query data before the actual request is made
$Client->addQueryData(['page' => 1, 'per_page' => 10]);
$Client->websites()->via('get');
# Alternative; add query data whilst building the request
$Client->websites()->addQueryData(['page' => 1, 'per_page' => 10])->via('get');
使用示例
使用开始于实例化 RapidSpike\API\Client
对象并传递必需的公共和私人密钥。从那里,您有几种选择来构建端点(请参阅上述概念)。
<?php
include 'vendor/autoload.php';
# Instantiate the Client with authentication keys
$Client = new RapidSpike\API\Client("rapidspike-********", "**********************************************");
# Add paging query data to be turned into the query string
$Client->addQueryData(['page' => 1, 'per_page' => 10]);
# Read all websites
$Websites = $Client->websites()->via('get');
# Read the first website's stats by its UUID
$uuid = $Websites->data->websites[0]->website->uuid;
$Website = $Client->websites($uuid)->addQueryData(['stats' => 'status,average_response,passing_monitors,failing_monitors,total_monitors'])->via('get');
联系
Twitter: @rapidspike