gigasavvy/liteview-api

围绕 Liteview REST API 的 PHP 包装器

v0.1.6 2016-10-26 17:01 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:47:53 UTC


README

StyleCI Build Status Latest Stable Version Total Downloads Latest Unstable Version

Liteview API 是围绕 Liteview REST API 的 PHP 包装器。它提供了一个轻量级且灵活的接口,用于与 Liteview 的电子商务履约服务进行通信。

安装

通过 composer 安装

composer require gigasavvy/liteview-api

基本用法

要连接到 API,创建一个新的 Liteview\Connection 实例,将您的 用户名appkey 凭据传递给构造函数

use Liteview\Connection;

$connection = new Connection('username', 'key');

在幕后,创建了一个带有正确头和数据以成功访问 API 的 HTTP 客户端。要调用 API,只需调用连接类的方法来执行支持的 HTTP 动词。第一个参数是要访问的资源 URI。第二个(可选)参数是要随请求发送的正文。这应该是一个有效的 XML 字符串。

// Get all supported order methods.
$orderResponse = $connection->get('order/methods');

// Submit a new order
$connection->post('order/submit', $xmlString);

XML 很糟糕

REST API 中的 XML 就像墨西哥餐厅的汉堡。不幸的是,Liteview 使用 XML 作为请求和响应有效载荷。幸运的是,此包利用了 Gestalt 配置包,允许您定义默认的 XML 配置并在发送请求之前作为对象修改它们。

要开始,请访问 Liteview API 文档,以获取每个资源的 XML 有效载荷示例。您可以复制这些示例并将其复制到单独的 XML 文件中并按需编辑它们。一旦您定义了 XML 请求的默认骨架,您很可能会想要动态地填充/修改 XML 文档的不同节点。这就是 Liteview\Api\Resources\Resource 类的用武之地。

Resource 类扩展了 Gestalt\Configuration 对象,旨在表示您的 XML 有效载荷作为 Gestalt 配置对象。它定义了一个额外的 toXml() 方法,您应该在将其传递给 API 请求之前调用它。让我们看看使用 Resource 类准备资源请求的示例

use Liteview\Connection;
use Liteview\Api\Resources\Resource;
use Liteview\Api\Resources\ResourceLoader;

// Create a new Resource instance using the ResourceLoader, which
// converts the given XML file to an associative array.
$order = Resource::create(new ResourceLoader('order_submit.xml'));

$order->set('order_status', 'Active');

$connection = new Connection('username', 'key');
$connection->post('order/submit', $order->toXml());

在这里,我们可以看到使用 Gestalt 的 自定义加载器 从 XML 文件创建 Resource 对象的完整示例。然后我们可以使用 Gestalt 配置的任何方法修改我们的 XML 配置,最后将其发送到连接的 post 方法。

有了这种灵活性,我们可以定义一次 XML 并在运行时修改它,而不用担心 XML 语法或直接使用 SimpleXMLElement 或类似内容的头痛。有关使用该包的更多信息,请参阅 Gestalt 的文档

附录

助手

Liteview API 包定义了一些全局助手函数,也可以使用。

string array_to_xml(array $data, SimpleXMLElement &$xml)

array_to_xml() 接受包含 XML 数据的关联数组,并将其解析为给定的 SimpleXMLElement

array xml_to_array(mixed $xml)

xml_to_array() 接受 UTF-8 编码的 XML 字符串或对象,并将其转换为关联数组。

bool is_assoc(array $arr)

is_assoc() 接受一个数组,并确定它是否是关联数组。

结论

即将推出更多功能和文档。