zamnuts/ean-api-client

Expedia Affiliate Network API 客户端

1.0.0 2015-10-15 20:24 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:36:58 UTC


README

这是一个用于处理 EAN API v3 r27 的综合库。要成功使用任何功能(即使在开发者模式下),需要有一个联盟账户。有关详细信息,请参阅EAN 开发者文档。这个结构化库尝试为每种查询类型提供精确的请求和响应参数。当通过某种类型的 IDE 进行代码提示时,这特别有帮助;它应该会加快集成并减少维护期间的猜测。

此库的当前状态

坦白说,这个库需要一次良好的盘点和审计。在撰写本文时,这个库已经闲置了一段时间,积累了不少灰尘。

  • 它曾经在一个生产环境中成功运行。
  • 对于公共成员,phpdocs 大部分是完整的。
  • 大部分,但并非所有请求/响应类型都被考虑在内;我知道的一个不完整的是地理函数中的 LocationInfoRequest(因为该项目没有使用它),但其他部分应该都是可用的。
  • 没有任何单元测试。当然,编写带有存根和固定值的测试会很好。
  • 一些“幕后”方法还处于半成品状态;原始意图是进行双向请求/响应处理和渲染。这从未实现,但有一些残留,其中一些是可行的。
  • 仅支持 API 的 r27 版本,而撰写本文时的最新版本是 v30。

使用示例

请参阅 examples/*.php 以获取酒店列表搜索示例和一般用法。

要开始,你需要一个 EAN API 密钥和密钥。一次只需要一个 EANConfigEANFacadeEANConfig 被用作模型,将 API 配置输入到 EANFacadeEANFacade 将通用配置应用到每个查询请求,例如 EANFacade->query(EANAbstractQuery)EANAPIClient\Query 中的任何内容都可以实例化并传递到外观的查询方法,此时 EANAbstractQuery 对象的 response 属性将包含结果。任何 EANAbstractQuery 的实例都是状态化的,因此如果需要重复和/或后续查询(特别是同一类型的查询),则应实例化一个新的,然后将其传递到同一个 EANFacade 实例的 query 方法。

ping 示例

use zamnuts\EANAPIClient\EANFacade;
use zamnuts\EANAPIClient\EANConfig;
use zamnuts\EANAPIClient\Query\EANPing;

// need session ID for EAN API, this can technically be anything, but this is best practice
session_start();

// config for EANFacade
$config = new EANConfig();
$config->apiKey		= ''; // CHANGEME
$config->apiSecret	= ''; // CHANGEME
$config->cid		= 0; // CHANGEME
$config->sessionId	= session_id(); // this happens automatically, but just for example
$config->devMode	= true; // switch to "false" in prod

// this is the gateway into the EAN API, all query structures are executed through this profile
$ean = new EANFacade($config); // just need one of these for all queries to use

$ping = new EANPing();
$ping->echo = 'Hello World'; // send this data
$ean->query($ping);

// due to the nature of the EAN API's ping request,
// the "echo" parameter should be the same in the response as the request
echo $ping->response->echo."\n"; // got this data back

echo ($ping->response->echo === $ping->echo ? 'MATCH' : 'INVALID')."\n";

将输出

Hello World
MATCH

许可证

BSD-3-Clause,请参阅 LICENSE 文件获取全文。(c)2015 Andrew Zammit zammit.andrew@gmail.com