repat / plentymarkets-rest-client
Plentymarkets REST 客户端
0.1.16
2022-06-01 06:02 UTC
Requires
- php: ^5.6 | ^7.0 | ^8.0 | ^8.1
- guzzlehttp/guzzle: ^6.0 | ^7.0
- nesbot/carbon: ^1.22.1 | ^2.0
README
这是一个为 Plentymarkets 新 REST API 定制的 PHP 包。API 在编写本文时(2017 年 3 月)相对较新,因此可能并非所有功能都能正常工作,此包也可能在某些时候过时。
我既不是 Plentymarkets 的合作伙伴,也没有人为此付费。如许可证所述,此软件为“现状”。如果您想要/需要更多功能,请打开 GitHub 票据或编写一个拉取请求。我会尽力而为 :) 话虽如此,我不再为开发此包的公司工作,所以如果您对此仓库有任何贡献的兴趣,请告诉我。
您可以在此处找到 Plentymarkets 文档
概述
- 4 个 HTTP 动词(GET、POST、PUT、DELETE)的函数
- 自动登录和刷新(如果登录已无效)
- 使用 PHP 数组进行简单的一次性配置(将序列化保存到文件中)
- 函数默认返回关联数组或原始数据(例如文件)
- 处理速率限制(感谢 hepisec)
安装
通过 Packagist 上的 Packagist 可用
composer require repat/plentymarkets-rest-client
使用方法
use repat\PlentymarketsRestClient\PlentymarketsRestClient; // path to store the configuration in $configFilePath = ".plentymarkets-rest-client.config.php"; // $config only has to be set once like this $config = [ "username" => "PM_USERNAME", "password" => "PM_PASSWORD", "url" => "https://www.plentymarkets-system.tld", ]; // Handle (Guzzle) Exceptions yourself - optional 3rd parameter $handleExceptions = PlentymarketsRestClient::HANDLE_EXCEPTIONS; // true $handleExceptions = PlentymarketsRestClient::DONT_HANDLE_EXCEPTIONS; // false (default) // Init $client = new PlentymarketsRestClient($configFilePath, $config, $handleExceptions); // After that just use it like so $client = new PlentymarketsRestClient($configFilePath);
可以使用以下方式使用 4 个 HTTP 动词
$client->get($path, $parameterArray); $client->post($path, $parameterArray); $client->put($path, $parameterArray); $client->delete($path, $parameterArray); // $parameterArray has to be a PHP array. It will be transformed into JSON automatically in case // of POST, PUT and DELETE or into query parameters in case of GET. // You don't _have_ to specify it, it will then just be empty $parameterArray = [ "createdAtFrom" => "2016-10-24T13:33:23+02:00" ]; // $path is the path you find in the Plentymarkets documentation $path = "rest/orders/";
还可以像这样使用函数。这为您提供了更多自由度,因为您可以为 Guzzle 对象指定方法和参数。
$client->singleCall("GET", $guzzleParameterArray);
原始数据
某些端点,例如 /rest/bi/raw-data/file
,不返回 JSON,而是返回原始文件。但是,默认情况下,单个调用会尝试 json_decode()
响应。您可以通过将 $jsonDecodeEnabled
标志设置为 false
来禁用它。
$client->setJsonDecodeEnabled(PlentymarketsRestClient::JSON_DECODE_DISABLED);
错误
- 如果调用出错(> guzzle 抛出异常),则所有方法都将返回 false,除非已将
$handleExceptions
设置为true
,在这种情况下,异常将通过 - 如果指定的配置文件不存在或未包含用户名/密码/URL,将抛出异常
待办事项
- 使用刷新令牌而不是新的登录信息进行刷新
依赖项
- https://packagist.org.cn/packages/nesbot/carbon 用于日期比较
- https://packagist.org.cn/packages/guzzlehttp/guzzle 用于 HTTP 调用。
许可证
- 请参阅 LICENSE 文件
变更日志
- 0.1.16 启用/禁用
json_decode()
以允许查询原始文件(感谢 dark-cms) - 0.1.15 启用返回 PDF(感谢 ewaldmedia)
- 0.1.14 添加 短周期写入限制达到 错误处理(感谢 resslinger)
- 0.1.13 将Laravels的
str_contains
更改为PHP的stripos()
,因为它不需要ext-mbstring
(感谢DanMan) - 0.1.12 移除
danielstjules/stringy
依赖项,改用Laravels的str_contains
- 0.1.11 支持 PHP 8,并在出现短时间读取限制达到错误时等待(感谢fwehrhausen)
- 0.1.10 通过传递第3个参数为
true
允许自己处理异常 - 0.1.9 修复
isAccessTokenValid()
错误(感谢hochdruckspezialist) - 0.1.8 更新,以便可以使用Carbon 2.0(感谢stefnats)
- 0.1.7 根据README修复构造函数(感谢daniel-mannheimer)
- 0.1.6 支持HTTP
PATCH
(感谢hepisec) - 0.1.5 移除对
www.
的检查,因为它会破坏子域名(感谢daniel-mannheimer) - 0.1.4 自动速率限制(感谢hepisec)
- 0.1.3 修复PHP 7.2依赖问题
- 0.1.2 修复Carbon依赖问题
- 0.1.1 为PHP 7.2更新Guzzle
- 0.1 首次发布
联系方式
- 主页: https://repat.de
- 电子邮件: repat@repat.de
- Twitter: @repat123