:warning: :construction:, (*1)
Archiviert
Dieses Repo wurde archiviert und wird nicht mehr weitergefĂŒhrt :file_folder:. FĂŒr produktive Projekte mit der Proffix Rest-API empfehlen sich mittlerweile andere Sprachen oder Technologien.
Als erpropte, ausgereifte und aktiv unterhaltene Alternativen empfehlen wird die von uns unterhaltenen Wrappers fĂŒr die Proffix Rest-API auszuprobieren:, (*2)
PHP Wrapper fĂŒr PROFFIX REST-API
Ein effizienter PHP Wrapper fĂŒr die PROFFIX REST-API, (*3)
, (*4)
Installation
Der Wrapper kann entweder geklont oder via Composer installiert werden., (*5)
composer require pitwch/rest-api-wrapper-proffix-php
Variante 1: Verwendung mit Composer (empfohlen)
Autoload RestAPIWrapperProffix class:, (*6)
require __DIR__ . '/vendor/autoload.php';
use Pitwch\RestAPIWrapperProffix\Client;
Konfiguration
Die Konfiguration wird dem Client mitgegeben:, (*7)
Konfiguration |
Beispiel |
Bemerkung |
url |
https://myserver.ch:999 |
URL der REST-API ohne pxapi/v2/
|
apiDatabase |
DEMO |
Name der Datenbank |
apiUser |
USR |
Names des Benutzers |
apiPassword |
b62cce2fe18f7a156a9c...0f0d7bd18d9e8a40be2e663017 |
SHA256-Hash des Benutzerpasswortes |
apiModule |
ADR,STU |
Benötigte Module (mit Komma getrennt) |
options |
array('key'=>'112a5a90...59028') |
Optionen (Details unter Optionen) |
Beispiel:, (*8)
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);
Optionen
Optionen sind fakultativ und werden in der Regel nicht benötigt:, (*9)
Option |
Beispiel |
Bemerkung |
key |
112a5a90fe28b...242b10141254b4de59028 |
API-Key als SHA256 - Hash (kann auch direkt mitgegeben werden) |
version |
v2 |
API-Version; Standard = v2 |
api_prefix |
/pxapi/ |
Prefix fĂŒr die API; Standard = /pxapi/ |
login_endpoint |
PRO/Login |
Endpunkt fĂŒr Login; Standard = PRO/Login |
user_agent |
php-wrapper-proffix-restapi |
User Agent; Standard = php-wrapper-proffix-restapi |
timeout |
15 |
Timeout fĂŒr Curl in Sekunden; Standard = 15 |
follow_redirects |
true |
Weiterleitungen der API folgen; Standard = false |
Methoden
Parameter |
Typ |
Bemerkung |
endpoint |
string |
Endpunkt der PROFFIX REST-API; z.B. ADR/Adresse,STU/Rapporte... |
data |
array |
Daten (werden automatisch in JSON konvertiert); z.B: array("Name"=>"Demo AG",...) |
parameters |
array |
Parameter gemÀss PROFFIX REST API Docs
|
Sonderzeichen in den Parametern mĂŒssen gegebenfalls mit Escape-Zeichen verwendet werden, z.B:, (*10)
//Escape ' with \'
array('filter'=>'GeaendertAm>d\'2018-05-17 14:54:56\'','depth'=>1,'fields'=>'AdressNr,Name,GeaendertAm')
Folgende unterschiedlichen Methoden sind mit dem Wrapper möglich:, (*11)
Get / Query
//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))
Put / Update
$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
Post / Create
$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
Response / Antwort
Alle Methoden geben die Response als Array bzw. NULL (z.B. bei DELETE)
Bei Fehlern wird HttpClientException
mit RĂŒckmeldung der PROFFIX REST-API ausgegeben., (*12)
Zudem lassen sich Zusatzinformationen zur Response wie folgt ausgeben:, (*13)
$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).
Spezielle Endpunkte
Info
Ruft Infos vom Endpunkt PRO/Info ab., (*14)
Hinweis: Dieser Endpunkt / Abfrage blockiert keine Lizenz, (*15)
$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();
Datenbank
Ruft Infos vom Endpunkt PRO/Datenbank ab., (*16)
Hinweis: Dieser Endpunkt / Abfrage blockiert keine Lizenz, (*17)
```php
$pxrest = new Client(...);, (*18)
//Variante 1: API - Key direkt mitgeben
$datenbank1 = $pxrest->database('112a5a90fe28b23ed2c776562a7d1043957b5b79fad242b10141254b4de59028');, (*19)
//Variante 2: API - Key aus Options verwenden (sofern dort hinterlegt)
$datenbank2 = $pxrest->database();
```, (*20)
Ausnahmen / SpezialfÀlle
- Endpunkte welche LeerschlĂ€ge enthalten können (z.B. LAG/Artikel/PC 7/Bestand) mĂŒssen mit rawurlencode() genutzt werden
Weitere Beispiele
Im Ordner /examples finden sich weitere,
auskommentierte Beispiele., (*21)