repat/plentymarkets-rest-client

Plentymarkets REST 客户端

0.1.16 2022-06-01 06:02 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:21 UTC


README

Latest Version on Packagist Total Downloads

这是一个为 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,将抛出异常

待办事项

  • 使用刷新令牌而不是新的登录信息进行刷新

依赖项

许可证

变更日志

  • 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 首次发布

联系方式

Flattr this git repo