rapidspike/rapidspike-api-wrapper-php

PHP 封装函数,用于与 RapidSpike API 交互。

v1.1.1 2022-06-28 08:30 UTC

This package is auto-updated.

Last update: 2024-09-20 00:33:03 UTC


README

PHP 封装 RapidSpike API (v1)。

信息

RapidSpike 提供了一个 RESTful API,旨在使与它们服务的交互更加简洁和容易。RapidSpike 站点 100% 由 API 驱动,因此您在那里可以做到的任何事情都可以直接通过 API 完成。

要与 API 交互,您必须首先拥有一个允许访问 API 的 RapidSpike 订阅。然后,您需要在您的 账户设置区域 中生成 API 密钥。

此封装包是面向未来的,因为当新的端点可用时 - 它只是一个封装器,提供了一个标准化的方式来构建端点,打包请求数据并在 API 中进行身份验证。

安装

建议使用 ComposerPackagist 进行安装。但是,由于包的性质,开发活动不会过于活跃。

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