- Notifications
You must be signed in to change notification settings - Fork0
PHP Wrapper für die PROFFIX REST API
License
pitwch/php-wrapper-proffix-restapi
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Ein effizienter PHP Wrapper für die PROFFIX REST-API.
Der Wrapper kann viaComposer installiert werden.
composerrequire pitwch/rest-api-wrapper-proffix-phpAutoload derRestAPIWrapperProffix Klasse:
require__DIR__ .'/vendor/autoload.php';usePitwch\RestAPIWrapperProffix\Client;
Die Konfiguration wird dem Client mitgegeben:
| Konfiguration | Beispiel | Bemerkung |
|---|---|---|
| url | https://myserver.ch:999 | URL der REST-APIohne pxapi/v2/ |
| apiDatabase | DEMO | Name der Datenbank |
| apiUser | USR | Name des Benutzers |
| apiPassword | b62cce2fe18f7a156a9c... | SHA256-Hash des Benutzerpasswortes |
| apiModule | ADR,STU | Benötigte Module (mit Komma getrennt) |
| options | array('key'=>'112a5a90...') | Optionen (Details unter Optionen) |
require__DIR__ .'/vendor/autoload.php';usePitwch\RestAPIWrapperProffix\Client;$pxrest =newClient('https://myserver.ch:999','DEMO','USR','b62cce2fe18f7a156a9c719c57bebf0478a3d50f0d7bd18d9e8a40be2e663017','ADR,STU', ['key'=>'112a5a90fe28b23ed2c776562a7d1043957b5b79fad242b10141254b4de59028','limit'=>2]);$adressen =$pxrest->get('ADR/Adresse', ['filter'=>'GeaendertAm>d\'2018-05-17 14:54:56\'','depth'=>1,'fields'=>'AdressNr,Name,GeaendertAm']);print_r($adressen);
Optionen sindfakultativ und werden in der Regel nicht benötigt:
| Option | Beispiel | Bemerkung |
|---|---|---|
| key | 112a5a90fe28b... | 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 |
| 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:["Name"=>"Demo AG",...] |
| parameters | array | Parameter gemässPROFFIX REST API Docs |
Sonderzeichen in den Parametern müssen gegebenfalls mit Escape-Zeichen verwendet werden, z.B:
// Escape ' with \'$params = ['filter' =>'GeaendertAm>d\'2018-05-17 14:54:56\'','depth' =>1,'fields' =>'AdressNr,Name,GeaendertAm'];$pxrest->get('ADR/Adresse',$params);
// Einfache Abfrage$adresse =$pxrest->get("ADR/Adresse/1");echo$adresse->Name;// DEMO AG// Abfrage mit Parametern$params = ['filter'=>'GeaendertAm>d\'2018-05-17 14:54:56\'','depth'=>1,'fields'=>'AdressNr,Name,GeaendertAm','limit'=>5];$adressen =$pxrest->get("ADR/Adresse",$params);
$data = ["AdressNr"=>1,"Ort"=>"Zürich","PLZ"=>8000,"EMail"=>"test@test.com"];$adresse =$pxrest->put("ADR/Adresse",$data);
$data = ["Ort"=>"Zürich","PLZ"=>8000,"EMail"=>"test@test.com"];$neueAdresse =$pxrest->post("ADR/Adresse",$data);
$response =$pxrest->delete("ADR/Adresse/42");
Generiert eine PROFFIX-Liste (z.B. ein PDF) und gibt das Ergebnis alsResponse-Objekt zurück, welches den rohen Dateiinhalt enthält.
| Parameter | Typ | Bemerkung |
|---|---|---|
$listenr | int | DieListeNr der Liste, die generiert werden soll. |
$body | array | (Optional) Ein assoziatives Array mit Parametern für die Listengenerierung.Wichtig: Es muss mindestens ein leeres JSON-Objekt ({}) gesendet werden. |
Beispiel:
$listeNr =1029;// Beispiel-ID für ADR_Adressliste.repx$pdfResponse =$pxrest->getList($listeNr);if ($pdfResponse->getCode() ===200) {file_put_contents('Adressliste.pdf',$pdfResponse->getBody());echo"Liste erfolgreich als Adressliste.pdf gespeichert.";}
Ruft Infos vom EndpunktPRO/Info ab.
Hinweis: Dieser Endpunkt / Abfrage blockiert keine Lizenz.
// Variante 1: API-Key direkt mitgeben$info1 =$pxrest->info('112a5a90fe28b23ed2c776562a7d1043957b5b79fad242b10141254b4de59028');// Variante 2: API-Key aus Options verwenden (sofern dort hinterlegt)$info2 =$pxrest->info();
Ruft Infos vom EndpunktPRO/Datenbank ab.
$dbInfo =$pxrest->database();
Alle Methoden geben die Response als Array bzw.NULL (z.B. beiDELETE) zurück. Bei Fehlern wird eineHttpClientException mit der Rückmeldung der PROFFIX REST-API geworfen.
Zudem lassen sich Zusatzinformationen zur letzten Response wie folgt ausgeben:
$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).
$lastResponse =$pxrest->http->getResponse();$lastResponse->getCode();// Response code (int).$lastResponse->getHeaders();// Response headers (array).$lastResponse->getBody();// Response body (JSON).
- Endpunkte, welche Leerschläge enthalten (z.B.
LAG/Artikel/PC 7/Bestand), müssen mitrawurlencode()genutzt werden.
Im Ordner/examples finden sich weitere auskommentierte Beispiele.
About
PHP Wrapper für die PROFFIX REST API
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
