Benutzer-Werkzeuge

Webseiten-Werkzeuge


webservice:item-getbinary

item/getBinary

Diese Methode dient dazu Binaries (Bilder und andere „Medien“) mit Bezug zu Artikeln zu ermitteln. Binaries können sowohl in der Datenbank (BLOB, vgl. im_GetBinary_Pu) als auch im Dateisystem hinterlegt sein und sind in „Typen“ (Produktansicht, Handbuch etc.) organisiert.

Die Methode liefert direkt die Daten mit entsprechendem Content-Type Header. Die Daten sind nicht nochmal in XML „eingepackt“.

Beispiele

Das erste Beispiel liefert ein Binary direkt aus der Datenbank (falls die ID bekannt ist):

curl -X GET 'http://dbap-demo.dstore.de/default/item/getBinary?BinaryCodeID=1' 

Im zweiten Beispiel wird die Suche nach Binaries per NoSQL-Index durchgeführt und das Binary aus der Datenbank ausgelesen:

curl -X GET 'http://dbap-demo.dstore.de/default/item/getBinary?ItemNo=G250002-1x0.5-GM&BinaryType=Produktansicht' 

Im dritten Beispiel holen wir uns ein Binary direkt aus dem Dateisystem:

curl -X GET 'http://dbap-demo.dstore.de/default/item/getBinary?FilenamePattern=G250002-.*\.jpg&BinaryType=Produktansicht'

Das folgende Beispiel zeigt dass „Fallback-Verhalten“ der Methode bei Anwendung des Parameters FilenamePattern gleichzeitig mit TreeNodeID. Wird zum Typ „Produktansicht“ kein Binary zur TreeNodeID 51 in der Datenbank gefunden wird als „Fallback“ im Dateisystem gesucht.

curl -X GET 'http://dbap-demo.dstore.de/default/item/getBinary?TreeNodeID=51&FilenamePattern=G250002-.*\.jpg&BinaryType=Produktansicht'

Es ist auch möglich per HEAD Methode nur zur prüfen ob ein Binary existiert (und den Content-Typ und die Größe des Bildes zu ermitteln) ohne das Binary komplett zu laden wie das folgende Beispiel zeigt:

curl --head 'http://dbap-demo.dstore.de/default/item/getBinary?TreeNodeID=51&BinaryType=Produktansicht'

Beschreibung

Parameter

NameBeschreibung
BinaryCodeIDBinaryCodeID des BLOBs in der Datenbank. Dieser Parameter kann alleine ohne weitere Parameter verwendet werden.
ItemNoZu der Artikelnummer (Wert zum Merkmal mit der ID 6) wird im NoSQL-Index nach einem Bild des Typs BinaryType gesucht.
TreeNodeIDZu der TreeNodeID wird im NoSQL-Index nach einem Bild des Typs BinaryType gesucht. Gibt mehrere Bilder so wird das Erste zurückgeliefert.
FilenamePatternEs wird nach Binaries im Dateisystem gesucht deren Name auf das Regex-Pattern1) passt, es sei denn es wurde bereits ein Binary (aus der Datenbank) über einen der anderen Parameter (falls überhaupt angegeben) gefunden. Treffen mehrere Dateien auf das Muster zu wird das Binary mit dem jüngsten Änderungsdatum zurückgeliefert. Der BinaryType bestimmt dabei das Unter-Verzeichnis in dem gesucht wird. Das Hauptverzeichnis für die Suche ist entweder das Verzeichis itembinaries unterhalb des Home-Verzeichnisses des webservice_SmartGates oder das Verzeichnis welches durch die Application-Setting BinaryDirectory festgelegt wird.
BinaryTypeImmer Pflicht, ausser das Binary wird direkt per BinaryCodeID gesucht.

HTTP-Methoden

Es werden sowohl GET als auch HEAD unterstützt. Wie bereits in den Beispielen beschrieben dient HEAD dazu Informationen über das Binary zu bekommen ohne die Daten abrufen zu müssen.

Status-Codes

Wird kein Binary mit den durch die Parameter festgelegten Kriterien gefunden wird ein 404 Not found geliefert.

Caching

Es wird ein Etag-Header erzeugt, der je nach Parametern abhängig ist:

  • von der BinaryCodeID und der Request-Methode oder
  • vom Dateinamen, dem Änderungsdatum und der Request-Methode

Der Cache-Control-header stellt die max-age per default auf 10 Minuten ein.

webservice/item-getbinary.txt · Zuletzt geändert: 13.11.2014 (Externe Bearbeitung)