REST: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 49: Zeile 49:
  </IfModule>
  </IfModule>


' Es wird also jeder tiefere Zugriff ab "/rest" nicht auf das physikalische Abbild des Dateisystems abgebildet, wie das im normalfall geschieht. Sondern die beliebig formulierte "virtuelle" Pfad-Angabe dem PHP-Parameter "rest" zugewiesen.  
* Es wird also jeder tiefere Zugriff ab "/rest" nicht auf das physikalische Abbild des Dateisystems abgebildet, wie das im normalfall geschieht. Sondern die beliebig formulierte "virtuelle" Pfad-Angabe dem PHP-Parameter "rest" zugewiesen.  
' QSA dient dem Anhängen der weiteren Query-Parameter
* QSA dient dem Anhängen der weiteren Query-Parameter
' L dient dem Ausstieg aus der Regelkette
* L dient dem Ausstieg aus der Regelkette




* Datei /etc/httpd.conf
* Datei /etc/apache2/httpd.conf


  Include /etc/apache2/mod_rewrite.conf
  Include /etc/apache2/mod_rewrite.conf
* Datei /etc/apache2/sysconfig.d/loadmodule.conf
LoadModule rewrite_module    /usr/lib/apache2-prefork/mod_rewrite.so


=== Erstes index.php5 ===
=== Erstes index.php5 ===

Aktuelle Version vom 19. Juni 2008, 14:50 Uhr

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

Vorarbeiten im Apache

  • Datei /etc/mod_rewrite.conf
<IfModule mod_rewrite.c>

RewriteEngine   On
RewriteLog      /var/log/apache2/rewrite_log
RewriteLogLevel 3

RewriteRule ^/rest(.*) /rest/index.php5?rest=$1 [QSA,L]

</IfModule>
  • Es wird also jeder tiefere Zugriff ab "/rest" nicht auf das physikalische Abbild des Dateisystems abgebildet, wie das im normalfall geschieht. Sondern die beliebig formulierte "virtuelle" Pfad-Angabe dem PHP-Parameter "rest" zugewiesen.
  • QSA dient dem Anhängen der weiteren Query-Parameter
  • L dient dem Ausstieg aus der Regelkette


  • Datei /etc/apache2/httpd.conf
Include /etc/apache2/mod_rewrite.conf
  • Datei /etc/apache2/sysconfig.d/loadmodule.conf
LoadModule rewrite_module     /usr/lib/apache2-prefork/mod_rewrite.so

Erstes index.php5

<HTML><BODY>
<?php

$_GLOBALS = array("rest","f","wC");
foreach ($_GLOBALS as $var) if (isset($_REQUEST[$var])) { $$var = $_REQUEST[$var]; }


echo "\$rest='". $rest . "'
\r\n"; echo "\$f='" . $f . "'
\r\n"; ?> </BODY> <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