REST

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen

Die REST-(RESTful)-Server- und Client-Technologie ist in den OrgaMon integriert.

  • Server

Auf einem definierbaren TCP-Port (Standard=3047) stellt der OrgaMon also diesen Web-Service zur Verfügung. Er lässt sich durch einen normalen Web-Browser ansprechen, eigent sich aber insbesondere für die Automatisierung und zur Kopplung von anderen Geschäftsprozessen an den OrgaMon. Insbesondere die Anbindung des WebShops.

  • Client

Die Buchführung des OrgaMon kann ein externes Konto leicht über einen REST-Service (AqBanking) ansprechen und Buchungen (Umsätze) auslesen. Über den Service lassen sich jedoch auch Lastschriften durchführen. In einer späteren Ausbaustufe können auch Überweisungen durchgeführt werden.


Grundlagen der REST Technologie

Beispiele

  1. Starten die den REST Service: WebShop->Reiter REST->Schalter REST
  2. Benutzen Sie einen Browser, und geben Sie den Rechnernamen des Systems an, auf dem sie eben REST gestartet haben.
  • Beispiel für alle möglichen Datenbank-Tabellen:

http://<RechnerName>:3047/

  • Beispiel für eine einzelne Tabelle

http://<RechnerName>:3047/SORTIMENT

Server in PHP Programmiert

Grundschwierigkeit scheint mir zu sein, dass immer nur in "Verzeichnissen" gedacht wird und nicht wie in PHP in "Parameter", toll wäre eigentlich wenn man dies in "methodhandler" umbiegen könnte. Es kommen z.B. 3 verschiedene Anfragen auf mich zu:

./aqbanking/UMSATZ/~BLZ~/~Konto#~?f=text

das bedeutet ich müsste in PHP irgenwie sagen können:

class root (tRESTworker) {
 echo("REST works!
" ); } class umsatz (tRESTworker) { BLZ = frompath(+1); KONTO = frompath(+2); echo("Dein Kontostand is null"); } class lastschrift (tRESTworker) { BLZ = frompath(+1); KONTO = frompath(+2); echo("..."); } $root = newREST(nil,'aqbanking'); $umsatz = newREST($root,'UMSATZ'); $lastschrift = newREST($root,'LASTSCHRIFT');


  • Eine Alternative wäre "echte" verzeichnisse unter Linux zu erstellen (brrrr) in unserem Fall ist das ausreichend da niemand sagt /USER/16/ORT (also ich ja nicht für alle User Unterverzeichnise anlegen (Overkill!!!)) aber so als schnelllösung könnte man ja viele viele Unterverzeichnisse erstellen und danach die vielen vielen index.php5 Dateien vervielfältigt reinstellen!


http://blog.astrumfutura.com/archives/245-RESTful-Web-Services-with-Zend-Framework.html

Ausblick

  • Grundsätzliche Erweiterung um einen "Name-Space" genau wie bei XMLRPC, also als erster "Parameter" wird grundsätzlich der Name-Space übertragen.

/<NameSpace>/

  • voraussichtliche Haupt-Einstiege (r/w):

./olap/ Ausführen von OLAP-Statements
./buch/ Besondere Auswertungen für die Buchführung
./shop/ Wrapper
./ecommerce/ kompletter Funktionsumfang des eCommerce-Moduls

f - Parameter

Ein allzeit Verwendbarer Parameter für das Format der Antwort des Servers ist der "f"-Parameter. Dabei gibt es folgdende Werte:

  • f=xml: Die Antwort wird in XML formatiert
  • f=text: Die Antwort wird als csv-Tabelle formatiert
  • f=xls: Es wird direkt mit einem XLS Dokument geantwortet
  • f=text.zip: Die Textantwort wird gezippt übertragen