gigasavvy / liteview-api
围绕 Liteview REST API 的 PHP 包装器
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^6.2
- samrap/gestalt: ^0.3.1
Requires (Dev)
- mockery/mockery: ^0.9.5
- phpunit/phpunit: ^5.5
This package is not auto-updated.
Last update: 2024-09-14 19:47:53 UTC
README
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() 接受一个数组,并确定它是否是关联数组。
结论
即将推出更多功能和文档。