napojse / heureka-bidding-api
Heureka的简单PHP API层。
Requires
- php: ^8.0
- ext-json: *
- ext-mbstring: *
Requires (Dev)
- nette/utils: ^3.0
- phpstan/phpstan: ^0.12.18
- phpstan/phpstan-nette: ^0.12.6
- symplify/easy-coding-standard: ^11.0
- tracy/tracy: ^2.7
Replaces
- baraja-core/heureka-bidding-api: dev-master
This package is auto-updated.
Last update: 2024-09-29 05:22:34 UTC
README
这是一个简单的库,用于与Heureka API进行通信,以便从Heureka获取数据。
在此API中,您可以下载关于产品、类别、价格、可用性等信息。您将获得机器可读的格式,如满足接口Baraja\HeurekaBiddingApi\Response\Response
的本地PHP实体。
📦 安装
只需使用Composer即可安装
$ composer require baraja-core/heureka-bidding-api
然后,您可以开始使用该库。
该库的主要优点是易于部署,不依赖于任何框架,并且完全自动运行。
🛠️ 在基本PHP中使用
要创建任何请求,只需创建HeurekaApi
服务的实例,传递accessKey
并放置单独的查询。响应将始终是类型化实体。
例如,我们想找出Heureka有多少个类别
$api = new \Baraja\HeurekaBiddingApi\HeurekaApi('vas-access-klic'); $response = $api->run(\Baraja\HeurekaBiddingApi\HeurekaApi::METHOD_CATEGORY_INDEX); echo $response->getCount();
具体方法将由您的编辑器直接提示。
注意
始终使用专用常量调用方法,这保证了您的应用程序与当前API版本的兼容性。
如果Heureka API发生更改,在此包中会发布更新(您可以通过命令
composer update
安装),由于使用了常量,因此包将始终保持兼容性。
在Nette中使用
该库与Nette具有良好的兼容性。为了功能正常,请将以下配置添加到您的项目common.neon
中(请记住指定您的access klíč
)
services: heurekaApi: Baraja\HeurekaBiddingApi\HeurekaApi('vas-access-klic')
⏫ 高级调用
对于高级请求配置,请始终使用官方文档,并传递3个参数
始终通过包含高级验证和输出到实体的方法的run()
方法来构建请求。
为了测试API调用,也可以将请求指向其他URL。首先需要使用方法setCustomEndpoint(string $locale, string $endpoint)
注册这些URL,该方法将传递语言(例如cs
)和URL(endpoint
)。在路由中,重写的URL地址具有比默认常量更高的优先级。重写是在方法resolveEndpoint()
中执行的,您可以自由调用此方法。
🧪 错误处理
如果在处理请求时出现任何应用程序错误,我们将抛出\Baraja\HeurekaBiddingApi\HeurekaException
异常。
在发生致命失败(例如服务器响应中的解析错误)的情况下,将抛出内部\RuntimeException
,我们不应捕获它,而应允许它在应用程序核心中抛出,并记录它。在库正确配置的情况下,永远不会抛出运行时错误,它们仅用于调试。
🔒 访问密钥
为了与API通信,您需要从Heureka获取API密钥。使用是按请求数量限制的,之后需要付费。我设法从支持人员那里免费获得了基本密钥(用于测试目的),但请不要依赖于此。
官方文档信息
API是如何激活的?
首先需要确认订单服务合同,然后您将获得访问令牌、文档和其他所需信息。然后,只需实现API即可。
👷♀️ 关于库的问题和错误报告
这是一个非官方库,不保证在您的环境中运行。尽管如此,库仍然试图满足尽可能多的通用接口,以便在大多数环境中具有广泛的支持。
为了确保正常功能,您需要安装PHP 7.1或更高版本(如何查找PHP版本?)。
如果您认为您做的一切都是正确的,而库中存在错误,请通过创建新的issue来报告。
该库由Jan Barášek开发。
📄 许可证
baraja-core/heureka-bidding-api
采用MIT许可证。有关更多详细信息,请参阅LICENSE文件。