mashup blog. Bringing mashups & web 2.0 down to earth.

 
 Saturday, June 24, 2006

Schon seit mehreren Jahren und mittlerweile in einer recht ausgereiften Form bietet eBay sämtliche im eBay Universum eingestellten Artikel über eine API bzw. einen SOAP-Webservice an. Über die API sind nicht nur eingestellte Artikel such- und auslesbar, sondern es können auch Artikel darüber neu eingestellt werden. Dies nutzen mittlerweile z.B. mehrere Duzend Software-Tools, welche ebay Heavy-Usern versprechen wollen, Artikel besser, schneller und schöner in eBay einzustellen, als dies eBay selbst kann (z.B. http://www.supreme-auction.de/).

 

Beschäftigt man sich mit der eBay API etwas genauer, muss man relativ schnell zugeben, dass es eBay ernst ist mit der API. Nicht nur dass die Zugriffsfunktionen auf Artikel sehr umfangreich sind, das ganze mehr oder weniger robust funktioniert und sauber versioniert ist. Auch die über 1’000 Seiten starke Dokumentation beeindruckt. Die brauchts dann allerdings auch, wenn man auf die unterschiedlichen Artikel in den weltweit verteilten eBay Marktplätzen zugreifen will. Nützlich sind fürs Erste auch die Code-Beispiele in verschiedenen Programmiersprachen, welche einen schnellen Einstieg erlauben: In wenigen Stunden kann damit ein einigermassen begabter Programmierer eBay Artikel auslesen und in eine bestehende Applikation integrieren.

 

Befasst man sich etwas intensiver mit der Materie, stellt man aber auch relativ rasch die dahinter stehende Komplexität fest. Ein Beispiel sei an dieser Stelle kurz ausgeführt: Neben allgemeinen Artikeleigenschaften wie aktueller Preis, Titel und Auktionsende speichert eBay je nach Artikeltyp weitere Attribute. Solche sind z.B. „Kilometerstand“ bei Autos oder „Auflösung“ bei Digitalkameras. Selbsterklärend, dass so eine Unzahl von Attributen zusammenkommt und nicht jeder Artikel die gleichen Attribute besitzt. eBay löst diese Problematik nun so, dass für jedes Attribut sowie für jeden Wert eines Attributs eine ID vergeben wird. Verfügbare Attribute je Artikel können über einen eigenen Call abgeprüft werden. Das ist soweit sinnvoll, etwas schwierig macht’s es allerdings, dass es kein vollständiges Verzeichnis dieser Attribut-IDs gibt (Dokumentation enthält nur die wichtigsten). Das heisst, dass je nach Aufgabenstellung das Ganze zur aufwändigen Pröbel-Aufgabe wird. Dazu allerdings stellt eBay wieder nützliche Tolls wie das API-Testtools bereit. Dieses erlaubt einen parametrisierbaren Aufruf sämtlicher API-Calls über ein simples Web-Interface. Die Responses werden direkt in XML-Struktur zurürckgegeben, so dass zumindest auf diese Weise relativ einfach eine Zugänglichkeit der Attribute und IDs gegeben ist. Die Attributlösung von eBay führt allerdings dazu, dass beim Einbau von Attribut-Informationen in eine Applikation für jeden Artikel ein eigener API-Call notwendig ist. D.h. dass zum Beispiel eine Auflistung aller gebrauchter Artikel (Attribut „Artikelzustand“ mit Wert „gebraucht“) einer bestimmten Kategorie nicht in einem Call möglich ist. Stattdessen muss ein weiterer Attribut-Call für jeden gefunden Artikel durchgeführt werden, was wiederum etwas mehr Programmieraufwand bedeutet. Betrachtet man allerdings eBays umfangreiche Artikel- und Attributstruktur von Auto über Briefmarke zu Schuhen, ist dies alles nur verständlich.

 

Entsprechend der Web 2.0 Philosophie ist die eBay API frei und kostenlos verfügbar. Wer mehr als 10'000 API Calls pro Monat ausführen will, muss seine Applikation allerdings offen legen und von eBay zertifizieren lassen. Eine Zertifizierung erfolgt ebenfalls kostenlos und dient eBay vor allem als Kontrolle dafür, dass Calls auf die eBay-Infrastruktur effizent gelöst sind und nicht unnötigen Traffic verursachen.

 

velyoo wurde zum Beispiel von eBay zertifiziert und darf sich deshalb mit folgendem Logo auszeichnen:

eBay | mashup | velyoo
 Thursday, June 22, 2006

Währenddem Kartendienste wie Google maps oder neuerdings auch Map24 brav ihre Kartendaten über APIs zur Integration zur Verfügung stellen, scheint sich map.search.ch und das Deutsche Pendant goyellow.de noch dagegen zu sträuben. Gerade weil map.search.ch aber schöne Satellitenbilder bereitstellt (welche für die Schweiz bei Google maps in hoher Auflösung fehlen) wäre eine Integration dieser Kartendaten zur Zeit noch besonders interessant.

Glücklicherweise braucht es aber nicht unbedingt eine API, um die Daten zu integrieren - JavaScript und URL-Parameter-Modifikation bringen auch schöne Resultate. Ein Beispiel, wie dies funktioniert, ist auf den Unterseiten von velyoo (map.search.ch) oder velyoo.de (goyellow.de) integriert (auf Vergrösserungs-Icon neben der Ortschaft klicken):

map-search-ch-mashup12.jpg

Technisch funktioniert dies folgendermassen:

Die statische Version von map.search (dito goyellow) liefert Bilder in JPG oder PNG Format URL-parameterbasiert aus. Ein Aufruf auf ein Bild kann damit folgendermassen aussehen:

http://mapdata.maple.search.ch/chmap.png?layer=sym,fg,copy,circle&zd=32&x=-200&y=-150&poi=zug&q=&merge=1&w=400&h=300&base=chur

Die Parameter haben folgende Funktion:

  • layer: Hier können die darzustellenden Layer angegeben werden: fg liefert z.B. die Ortsnamen, sym die Karte, circle zeichnet den gesuchten Ort auf der Karte mit einem roten Kreis und bg zeigt das gewünschte Satellitenbild.
  • zd: Damit wird der Zoomfaktor eingestellt, mögliche Werte 0.5 bis 400
  • x, y:Geben die Anzahl Pixel an, wo der Karteausschnitt links und oben vom Zielpunkt entfernt beginnen soll
  • w, h: Geben Höhe und Breite des zurückgelieferten Bildes an
  • poi: Mögliche Point of Interest Layers, z.B. zug für die Bahnhöfe
  • base: der Eigentliche Suchort URL-encoded, also z.B. Chur oder St.%20Gallen, ergänzt um Adressen

Mit etwas JavaScript lassen sich die Parameter-Aufrufe nun dynamisieren, z.B. Zoomfaktor für Ein- oder Auszoomen oder ein Switch von Karte zu Satellitenbild. Diese beiden Funktionen sind auf velyoo im genannten Karten-popup integriert, die JavaScript-Funktionen sind offen unter http://www.velyoo.com/res/helpers.js verfügbar.

Leider lassen sich damit noch nicht so schön Inhalte wie Fotos oder andere Daten in die Map hineinrendern, wie dies bei Google maps möglich ist. Für die dynamische Anzeige von Adressdaten oder Ortskizzen auf einer Website jedoch allemal ausreichend und als Goodie mit hochauflösender Satellitenbilder der Schweiz.

map | mashup | velyoo

Wikipedia definiert den Begriff Mashup folgendermassen:

"Der Mashup (engl. für Vermanschung) bezeichnet die Erstellung neuer Webinhalte durch die nahtlose (Re-)Kombination bereits bestehender Webinhalte und -angebote. So stammt der Begriff auch aus der Welt der Musik und bedeutet dort im Englischen soviel wie Remix. In den deutschen Sprachraum wurde der Begriff rund um das Schlagwort Web 2.0 importiert, da Mashups als ein wesentliches Beispiel für das Neue an Web 2.0 angeführt werden.

Typischerweise werden die Inhalte der Mashup-Website über offene Programmierschnittstellen, per Web-Feed (z.B. RSS) oder JavaScript eingebunden.

Eine besonders große Anzahl an Mashups verknüpft dabei geographische Daten, beispielsweise von Google Maps, mit anderen Inhalten wie Fotos oder Kleinanzeigen."

siehe http://de.wikipedia.org/wiki/Mashup

Archive

<August 2008>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

More Information
Categories Blogroll
 RSS 2.0  Atom 1.0

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.


Sign In


© Copyright 2008, Marco Hassler