2017 © Pedro PelĂĄez
 

library rest-api-wrapper-proffix-php

PHP Wrapper for PROFFIX REST API

image

pitwch/rest-api-wrapper-proffix-php

PHP Wrapper for PROFFIX REST API

  • Wednesday, June 27, 2018
  • by pitw
  • Repository
  • 1 Watchers
  • 1 Stars
  • 22 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 5 Versions
  • 5 % Grown

The README.md

PHP Wrapper fĂŒr PROFFIX REST-API

Ein effizienter PHP Wrapper fĂŒr die PROFFIX REST-API., (*1)

alt text, (*2)

Installation

Der Wrapper kann via Composer installiert werden., (*3)

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

Konfiguration

Initialisierung

Autoload der RestAPIWrapperProffix Klasse:, (*4)

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

use Pitwch\RestAPIWrapperProffix\Client;

Die Konfiguration wird dem Client mitgegeben:, (*5)

Konfiguration Beispiel Bemerkung
url https://myserver.ch:999 URL der REST-API ohne 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)

Beispiel fĂŒr die Initialisierung

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

use Pitwch\RestAPIWrapperProffix\Client;

$pxrest = new Client(
    '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

Optionen sind fakultativ und werden in der Regel nicht benötigt:, (*6)

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

Methoden

Allgemeine Methoden (get, put, post, delete)

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Àss PROFFIX REST API Docs

Sonderzeichen in den Parametern mĂŒssen gegebenfalls mit Escape-Zeichen verwendet werden, z.B:, (*7)

// Escape ' with \'
$params = ['filter' => 'GeaendertAm>d\'2018-05-17 14:54:56\'', 'depth' => 1, 'fields' => 'AdressNr,Name,GeaendertAm'];
$pxrest->get('ADR/Adresse', $params);

Get / Query

// 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);

Put / Update

$data = ["AdressNr"=>1, "Ort"=>"ZĂŒrich", "PLZ"=>8000, "EMail"=>"test@test.com"];
$adresse = $pxrest->put("ADR/Adresse", $data);

Post / Create

$data = ["Ort"=>"ZĂŒrich", "PLZ"=>8000, "EMail"=>"test@test.com"];
$neueAdresse = $pxrest->post("ADR/Adresse", $data);

Delete

$response = $pxrest->delete("ADR/Adresse/42");

Spezifische Methoden

getList(int $listenr, array $body = [])

Generiert eine PROFFIX-Liste (z.B. ein PDF) und gibt das Ergebnis als Response-Objekt zurĂŒck, welches den rohen Dateiinhalt enthĂ€lt., (*8)

Parameter Typ Bemerkung
$listenr int Die ListeNr 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:, (*9)

$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.";
}

Spezielle Endpunkte

Info

Ruft Infos vom Endpunkt PRO/Info ab., (*10)

Hinweis: Dieser Endpunkt / Abfrage blockiert keine Lizenz., (*11)

// 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., (*12)

$dbInfo = $pxrest->database();

Response / Antwort

Alle Methoden geben die Response als Array bzw. NULL (z.B. bei DELETE) zurĂŒck. Bei Fehlern wird eine HttpClientException mit der RĂŒckmeldung der PROFFIX REST-API geworfen., (*13)

Zudem lassen sich Zusatzinformationen zur letzten Response wie folgt ausgeben:, (*14)

Letzter 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).

Letzte Response

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

Ausnahmen / SpezialfÀlle

  • Endpunkte, welche LeerschlĂ€ge enthalten (z.B. LAG/Artikel/PC 7/Bestand), mĂŒssen mit rawurlencode() genutzt werden.

Weitere Beispiele

Im Ordner /examples finden sich weitere auskommentierte Beispiele., (*15)

Weitere Wrapper fĂŒr die Proffix Rest-API

The Versions

27/06 2018

dev-master

9999999-dev https://www.pitw.ch

PHP Wrapper for PROFFIX REST API

  Sources   Download

MIT

The Requires

  • php >= 5.6.0
  • ext-curl *
  • ext-json *

 

The Development Requires

by Simon Pedrett

api curl php rest wrapper restful proffix proffix rest api

29/05 2018

v1.3

1.3.0.0 https://www.pitw.ch

PHP Wrapper for PROFFIX REST API

  Sources   Download

MIT

The Requires

  • php >= 5.6.0
  • ext-curl *
  • ext-json *

 

The Development Requires

by Simon Pedrett

api curl php rest wrapper restful proffix proffix rest api

29/05 2018

dev-dev

dev-dev https://www.pitw.ch

PHP Wrapper for PROFFIX REST API

  Sources   Download

MIT

The Requires

  • ext-curl *
  • ext-json *
  • php >= 5.6.0

 

The Development Requires

by Simon Pedrett

api curl php rest wrapper restful proffix proffix rest api

24/04 2018

1.0.1

1.0.1.0 https://www.pitw.ch

PHP Wrapper for PROFFIX REST API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Simon Pedrett

api curl php rest wrapper restful proffix proffix rest api

23/04 2018

1.0

1.0.0.0 https://www.pitw.ch

PHP Wrapper for PROFFIX REST API

  Sources   Download

MIT

The Requires

 

The Development Requires

by Simon Pedrett

api curl php rest wrapper restful proffix proffix rest api