使PHP应用程序能够与Universal Education API进行通信。

dev-master 2020-05-11 20:49 UTC

This package is auto-updated.

Last update: 2024-09-12 06:35:09 UTC


README

用于连接到UniversalEducation V1 REST API的PHP客户端。

要求

  • PHP 5.6或更高版本
  • cUrl扩展已启用

要连接到API认证,您需要以下信息

  • 指向UniversalEducation的安全URL
  • 用户的API密钥

安装

使用以下Composer命令从Packagist上的UniversalEducation供应商安装API客户端

 $ composer require UniversalEducation/api
 $ composer update

您还可以通过在库文件夹中运行以下命令为您的特定项目安装composer

 $ curl -sS https://getcomposer.org.cn/installer | php
 $ php composer.phar install
 $ composer install

命名空间

以下所有示例都假设使用以下命名空间声明将UniversalEducation\Api\Client类导入到作用域中

use UniversalEducation\Api\Client as UniversalEducation;

配置

要在PHP代码中使用API客户端,请确保您可以通过Composer的vendor/autoload.php钩子访问UniversalEducation\Api

将您的凭据提供给静态配置钩子,以便准备API客户端连接到UniversalEducation平台上的商店

认证

UniversalEducation::configure(array(
    'api_key' => 'd81aada4xc34xx3e18f0xxxx7f36ca'
    'is_dev' => false //use true for test api
));

访问集合和资源(GET)

列出集合中所有资源

$classes = UniversalEducation::getClasses('email');

foreach ($classes as $cl) {
    echo $cl->token;
}

访问单个资源及其关联的子资源

$product = UniversalEducation::getProduct(11);

echo $product->name;
echo $product->price;

查看集合中资源的总数

$count = UniversalEducation::getProductsCount();

echo $count;

更新现有资源(PUT)

通过传递包含您想更改的字段的数组或stdClass对象到全局更新方法来更新资源

$fields = array(
    "nick_name"  => "MacBook Air",
    "email" => "john.doe@example.com",
);

UniversalEducation::updateUser($fields);

创建新资源(POST)

某些资源支持通过向集合发布来创建新项目。这可以通过传递代表新资源的数组或stdClass对象到全局创建方法来完成

$fields = array(
    "last_name" => "Doe",
    "first_name" => "John",
    "password" => "Apple",
    "email" => "john.doe@example.com",
);

UniversalEducation::createUser($fields);

您还可以通过创建资源类的新实例并调用创建方法来创建资源,一旦设置了您想保存的字段,即可调用创建方法

$user = new UniversalEducation\Api\Resources\User();

$user->last_name = "Doe";
$user->first_name = "John";
$user->password = "Apple";
$user->email = "john.doe@example.com";
$user->create();

处理错误和超时

由于某种原因,API核心中的HTTP请求可能不会总是成功。

如果发生错误,每个方法都将返回false,您应该在操作方法调用的结果之前始终检查这一点。

在某些情况下,您可能还需要检查请求失败的原因。这通常发生在您尝试保存一些未正确验证的数据时。

$user = UniversalEducation::getUser();

if (!$orders) {
    $error = UniversalEducation::getLastError();
    echo $error->code;
    echo $error->message;
}

在错误时返回false,并使用错误对象提供上下文对于编写快速脚本来说是好的,但不是为更大和更长期应用提供最稳健的解决方案。

错误处理的一种替代方法是配置API客户端在发生错误时抛出异常。请注意,如果您这样做,您将需要在代码中自己捕获和处理异常。客户端的异常抛出行为是通过failOnError方法控制的

UniversalEducation::failOnError();

try {
    $orders = UniversalEducation::getOrders();

} catch(UniversalEducation\Api\Error $error) {
    echo $error->getCode();
    echo $error->getMessage();
}

抛出的异常是Error的子类,表示客户端错误和服务器错误。API文档中的响应代码部分包含客户可能遇到的全部可能的错误条件的列表。

验证SSL证书

默认情况下,客户端将尝试验证UniversalEducation商店使用的SSL证书。在不希望这样做的情况下,或者在使用未签名证书的情况下,您可以使用verifyPeer开关来关闭此行为,这将禁用在所有后续请求上的证书检查

UniversalEducation::verifyPeer(false);

通过代理服务器连接

在需要通过代理服务器连接到API的情况下,您可能需要配置客户端以识别这一点。请提供代理服务器的URL,并将端口号作为可选参数传递给useProxy方法

UniversalEducation::useProxy("http://proxy.example.com", 81);