Archive for the ‘webservice’ tag
Wie baue ich mir ein Script mit Lapicon?
Lapicon (Loose API Connection Language) ist ein Interpreter für eine Scriptsprache, die auf den ersten Blick Ähnlichkeiten mit dem Windows-Eigenen Batch hat und dafür gedacht ist, mit Webservern in Verbindung zu treten, die ihre Daten als XML bereitstellen und REST-Anfragen über HTTP-GET unterstützen. Soweit die Theorie.
Praktisch gesehen ist Lapicon eine einfache Möglichkeit, Webservices zu verwenden. Und geeignete gibt es (wie die Google-Suche nach “REST-API” schon bald zeigt) einige:
- Last.FM (http://www.last.fm/api)
- Flickr (http://www.flickr.com/services/api/)
- Twitter (http://apiwiki.twitter.com/Twitter-API-Documentation)
- Wuala (http://www.wuala.com/de/api)
- …
Aber wie geht man nun vor, wenn man Lapicon für irgendeines dieser APIs verwenden will? Diese Frage will ich in diesem Artikel beantworten, anhand zweier Beispiele: den Skripts DownloadAlbumAfterSearch.lpc und Lyrics.lpc aus dem Paket DarkSharpScripts, das ab Version 1.0.9 von Lapicon im Verzeichnis “packages” zu finden ist. Das erste Script sucht anhand einer Eingabe alle in Frage kommenden Alben und lässt den User eines auswählen, das anschließend komplett von Last.FM heruntergeladen wird (wenn möglich). Und das zweite findet mithilfe der LyricWiki (noch eine Seite, die REST-Anfragen unterstützt!) den Songtext zu einem vom User eingegebenen Musiktitel.
[Release] Lapicon 1.0.5
Ich habe vor einiger Zeit bereits einmal Lapicon erwähnt. Der Name steht für “Loose API Connection Language” und bezeichnet eine Scriptsprache, die Ähnlichkeiten mit Batch aufweist und dafür gedacht ist, mit XML-basierten WebServices zu interagieren.
Das klingt jetzt extrem technisch, das gebe ich zu, aber im Prinzip ist es ganz einfach: das Last.FM-API beispielsweise kann über Adressen der Form
http://ws.audioscrobbler.com/2.0/?method=[Funktion]&api_key=[APIKey]&[sonstige Parameter]
aufgerufen werden. Daraufhin wird eine Antwort gesendet, die folgende Form hat:
<?xml version="1.0" encoding="utf-8" ?> <lfm status="ok"> (...) </lfm>
Will man diese Antworten nun auswerten, müsste man sie als Programmierer zuerst per Hand auseinandernehmen oder auf entsprechende Bibliotheken zurückgreifen. Hinzu kommt natürlich der Aufwand beim Erstellen der Anfrage, beim Fehler abfangen, etc… Meist hat man dann mehr Daten gesammelt, als man eigentlich benötigt, hatte einen Haufen Schreibaufwand und weiß, bei der nächsten Anfrage geht’s wieder von vorne los. Lapicon übernimmt das alles und ermöglicht so eine gezielte Abfrage und Ausgabe von Daten in drei Zeilen.
LastFmLib.Net
UPDATE 12.12.2008: Veränderungen in den Namespaces von LastFmLib.Net!
Ich habe mich in letzter Zeit viel mit Last.FM beschäftigt, nicht zuletzt wegen meinen beiden Programmen LastSharp und Lea. Aufgrund eines Problems mit letzterem (Tracks/Künstler mit Umlauten machen Schwierigkeiten) habe ich mich ein wenig umgesehen und bin auf eine (angeblich vollständige) Implementierung des Last.FM-APIs in .NET gestoßen: LastFmLib.Net.