Aus Linux-Magazin 05/2005

Software entwickeln unter Linux: Representational State Transfer

Web Services mit XML-RPC und SOAP sind zwar praktisch für den maschinellen Austausch von WWW-Daten, aber schwierig zu programmieren. REST macht Webdienste so einfach, wie das Web einmal war.

Inhalt

 

94

Qt 4 Preview
Die nächste große Release des GUI-Toolkits steht bevor.
Eine Vorschau auf wichtige Neuerungen.

100

Apache-Module mit Perl
In Perl geschriebene Apache-Module ermöglichen den Eingriff in
alle Arbeitsphasen des Servers.

105

Perl-Snapshot
Eine Dokumentendatenbank von PDF-Schnipseln – mit Perl kein
Problem.

110

Federlesen
Grafische Oberflächen baut Tcl am liebsten mit dem Partner Tk.
Eine Beispielanwendung holt Wetterdaten vom Server.

114

CCache
Der Compiler-Cache speichert Kompilier-Ergebnisse zwischen und
beschleunigt so die Software-Entwicklung.

Eine Zeit lang galten Web Services als der letzte Schrei. Dass nicht allzu viele Webseiten sie verwenden, hat seinen Grund auch in der Komplexität der Protokolle XML-RPC und SOAP – sagen Kritiker. Die beiden Standards ähneln sich zwar, sind aber trotzdem inkompatibel. In jedem Fall müssen Anwender das spezifische API eines Webdienstes kennen und Anfragen syntaktisch korrekt in XML formulieren.

Eine Alternative dazu ist REST (Representational State Transfer,[1]). Es handelt sich nicht um einen Standard, sondern um ein eher informelles Architekturmodell: Ein Server ändert den Zustand (State) des Clients, indem er ihm den neuen State – als HTML-Seite repräsentiert – schickt (Transfer). Dieses Konzept lässt sich auch auf Web Services übertragen. Dafür muss der Server passende URLs konstruieren, unter denen ein Client die gewünschte Information findet, zum Beispiel »http://Servername/Ersatzteile/Schrauben/4282«.

Einfaches Yahoo-API

Seit kurzem bietet Yahoo eine Schnittstelle für Webdienste an, die auch die Bild- und Videodatenbanken einschließt[2]. Überraschenderweise setzt Yahoo dabei auf REST. Zuerst muss man sich auf der Website registrieren, um eine Application-ID zu erhalten. Ein SDK bringt für mehrere Programmiersprachen Module mit, die den Entwicklungsprozess vereinfachen.

In Python-Skripten zum Beispiel genügt es, die gewünschte Suche als Modul zu importieren (etwa »WebSearch«, »News-Search«, »ImageSearch« …) und mit der Application-ID zu instanziieren:

searcher = ImageSearch("
 
  ACB3531
 ")

Der Suchbegriff wandert in die Instanzvariable »query«, die Methode »parse_ results« liefert das Suchergebnis:

searcher.query = word
results = searcher.parse_results()

Wenige Zeilen Code genügen bei REST für mächtige Suchanfragen. Über die Application-ID begrenzt Yahoo allerdings die Nutzung: Für jeden Service gilt ein Limit von 5000 Requests pro Tag. Abgesehen davon ist das Angebot für nicht-kommerzielle Anwendungen unbegrenzt. Kommerzielle Nutzung setzt die Zustimmung von Yahoo voraus.

Programmierer-Software

Infos

[1] REST kurz erklärt: [http://www.xfront.com/REST-Web-Services.html]

[2] Yahoo Developer API: [http://developer.yahoo.net]

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben