zamnuts / ean-api-client
Expedia Affiliate Network API 客户端
Requires
- php-curl-class/php-curl-class: ~4.6.9
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 密钥和密钥。一次只需要一个 EANConfig
和 EANFacade
。 EANConfig
被用作模型,将 API 配置输入到 EANFacade
。 EANFacade
将通用配置应用到每个查询请求,例如 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