REST: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Root (Diskussion | Beiträge) |
||
(14 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 7: | Zeile 7: | ||
* Client | * Client | ||
Die Buchführung des OrgaMon kann ein externes Konto leicht über einen REST-Service ansprechen und Buchungen (Umsätze) auslesen. Über den Service lassen sich jedoch auch Lastschriften durchführen. In einer späteren | 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 == | == Grundlagen der REST Technologie == | ||
Zeile 31: | Zeile 32: | ||
http://<RechnerName>:3047/SORTIMENT | http://<RechnerName>:3047/SORTIMENT | ||
</code> | </code> | ||
== 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 === | |||
<code> | |||
<HTML><BODY> | |||
<?php | |||
$_GLOBALS = array("rest","f","wC"); | |||
foreach ($_GLOBALS as $var) if (isset($_REQUEST[$var])) { $$var = $_REQUEST[$var]; } | |||
echo "\$rest='". $rest . "'<br>\r\n"; | |||
echo "\$f='" . $f . "'<br>\r\n"; | |||
?> | |||
</BODY> | |||
<HTML> | |||
</code> | |||
== Ausblick == | == Ausblick == |
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
- http://www.oio.de/public/xml/rest-webservices.htm
- http://xml-magazin.de/itr/online_artikel/show.php3?id=209&nodeid=69
- http://linuxenterprise.de/itr/news/psecom,id,39097,nodeid,8.html
Beispiele
- Starten die den REST Service: WebShop->Reiter REST->Schalter REST
- 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