pitwch / rest-api-wrapper-proffix-php
此软件包已被废弃且不再维护。未建议替代软件包。
PROFFIX REST API 的 PHP Wrapper
v1.3
2018-05-29 12:01 UTC
Requires
- php: >= 5.6.0
- ext-curl: *
- ext-json: *
Requires (Dev)
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
安装
该 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文件夹中可以找到更多已注释的示例。
