pitwch/rest-api-wrapper-proffix-php

此软件包已被废弃且不再维护。未建议替代软件包。

PROFFIX REST API 的 PHP Wrapper

v1.3 2018-05-29 12:01 UTC

This package is not auto-updated.

Last update: 2023-07-22 23:10:29 UTC


README

⚠️ 🚧

存档

此存储库已被存档且不再继续维护 📁。对于使用 Proffix Rest-API 的生产项目,现在建议使用其他语言或技术。作为经过验证、成熟且积极维护的替代方案,建议尝试我们维护的 Proffix Rest-API Wrapper。

PHP Wrapper for PROFFIX REST-API

一个高效的 PROFFIX REST-API PHP Wrapper

alt text

安装

该 Wrapper 可以通过克隆或通过 Composer 安装。

composer require pitwch/rest-api-wrapper-proffix-php

变体 1:使用 Composer(推荐)

自动加载 RestAPIWrapperProffix 类

require __DIR__ . '/vendor/autoload.php';

use Pitwch\RestAPIWrapperProffix\Client;

配置

配置会被传递给客户端

配置 示例 注意
url https://myserver.ch:999 REST-API 的 URL 不包含 pxapi/v2/
apiDatabase DEMO 数据库名称
apiUser USR 用户名
apiPassword b62cce2fe18f7a156a9c...0f0d7bd18d9e8a40be2e663017 用户密码的 SHA256 哈希值
apiModule ADR,STU 所需的模块(以逗号分隔)
options array('key'=>'112a5a90...59028') 选项(详细信息见选项)

示例

require __DIR__ . '/vendor/autoload.php';

use Pitwch\RestAPIWrapperProffix\Client;

$pxrest =  new  Client(
    'https://myserver.ch:999',
    'DEMO',
    'USR',
    'b62cce2fe18f7a156a9c719c57bebf0478a3d50f0d7bd18d9e8a40be2e663017',
    'ADR,STU',
    array('key'=>'112a5a90fe28b23ed2c776562a7d1043957b5b79fad242b10141254b4de59028','limit'=>2));
$adressen = $pxrest->get('ADR/Adresse',array('filter'=>'GeaendertAm>d\'2018-05-17 14:54:56\'','depth'=>1,'fields'=>'AdressNr,Name,GeaendertAm'));;
print_r($adressen);

选项

选项是 可选的,通常不需要

选项 示例 注意
key 112a5a90fe28b...242b10141254b4de59028 API 键作为 SHA256 哈希(也可以直接提供)
version v2 API 版本;默认 = v2
api_prefix /pxapi/ API 前缀;默认 = /pxapi/
login_endpoint PRO/Login 登录端点;默认 = PRO/Login
user_agent php-wrapper-proffix-restapi 用户代理;默认 = php-wrapper-proffix-restapi
timeout 15 Curl 的超时时间(秒);默认 = 15
follow_redirects true 跟随 API 的重定向;默认 = false

方法

参数 类型 注意
endpoint 字符串 PROFFIX REST-API 的端点;例如 ADR/地址,STU/报告...
data 数组 数据(将被自动转换为 JSON);例如:array("Name"=>"Demo AG",...)
parameters 数组 参数根据 PROFFIX REST API 文档

参数中的特殊字符需要使用转义字符,例如

//Escape ' with \'
array('filter'=>'GeaendertAm>d\'2018-05-17 14:54:56\'','depth'=>1,'fields'=>'AdressNr,Name,GeaendertAm')

以下不同的方法可以通过 Wrapper 实现

获取 / 查询
//Einfache Abfrage
$pxrest =  new  Client(...)
$adresse = $pxrest->get("ADR/Adresse/1")  //Legt Response als Objects in $adresse ab
$adresse->Name //DEMO AG

/Abfrage mit Parametern
$pxrest =  new  Client(...)
$adresse = $pxrest->get("ADR/Adresse",array('filter'=>'GeaendertAm>d\'2018-05-17 14:54:56\'','depth'=>1,'fields'=>'AdressNr,Name,GeaendertAm','limit'=>5))
放置 / 更新
$pxrest =  new  Client(...)
$data = array("AdressNr"=>1,"Ort"=>"Zürich","PLZ"=>8000,"EMail"=>"test@test.com");
$adresse = $pxrest->put("ADR/Adresse",$data)  //Sendet $data an Endpunkt ADR/Adresse
发布 / 创建
$pxrest =  new  Client(...)
$data = array("AdressNr"=>1,"Ort"=>"Zürich","PLZ"=>8000,"EMail"=>"test@test.com");
$adresse = $pxrest->post("ADR/Adresse",$data)  //Sendet $data an Endpunkt ADR/Adresse
响应 / 响应

所有方法都以数组或NULL(例如,在DELETE时)形式返回响应。当出现错误时,会输出HttpClientException,并返回PROFFIX REST-API的反馈。

此外,还可以按以下方式输出响应的附加信息

$pxrest =  new  Client(...)
$adresse = $pxrest->get("ADR/Adresse")

//Zusatzinformationen zum letzten Request
$lastRequest = $pxrest->http->getRequest();
$lastRequest->getUrl(); // Get requested URL (string).
$lastRequest->getMethod(); // Get request method (string).
$lastRequest->getParameters(); // Get request parameters (array).
$lastRequest->getHeaders(); // Get request headers (array).
$lastRequest->getBody(); // Get request body (JSON).


//Zusatzinformationen zur letzten Response
$lastResponse = $pxrest->http->getResponse();
$lastResponse->getCode(); // Response code (int).
$lastResponse->getHeaders(); // Response headers (array).
$lastResponse->getBody(); // Response body (JSON).

特殊端点

信息

从端点 PRO/Info 获取信息。

注意:此端点/查询不会阻塞许可证

$pxrest =  new  Client(...)

//Variante 1: API - Key direkt mitgeben
$info1 = $pxrest->info('112a5a90fe28b23ed2c776562a7d1043957b5b79fad242b10141254b4de59028');
  
//Variante 2: API - Key aus Options verwenden (sofern dort hinterlegt)
$info2 = $pxrest->info();
数据库

从端点 PRO/Datenbank 获取信息。

注意:此端点/查询不会阻塞许可证

$pxrest = new Client(...);

//Variante 1: API - Key direkt mitgeben
$datenbank1 = $pxrest->database('112a5a90fe28b23ed2c776562a7d1043957b5b79fad242b10141254b4de59028');
  
//Variante 2: API - Key aus Options verwenden (sofern dort hinterlegt)
$datenbank2 = $pxrest->database();

异常 / 特殊情况

  • 包含空格的端点(例如,LAG/Artikel/PC 7/Bestand)必须使用rawurlencode()使用。

其他示例

/examples文件夹中可以找到更多已注释的示例。