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“.
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'
Name | Beschreibung |
---|---|
BinaryCodeID | BinaryCodeID des BLOBs in der Datenbank. Dieser Parameter kann alleine ohne weitere Parameter verwendet werden. |
ItemNo | Zu der Artikelnummer (Wert zum Merkmal mit der ID 6) wird im NoSQL-Index nach einem Bild des Typs BinaryType gesucht. |
TreeNodeID | Zu der TreeNodeID wird im NoSQL-Index nach einem Bild des Typs BinaryType gesucht. Gibt mehrere Bilder so wird das Erste zurückgeliefert. |
FilenamePattern | Es 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. |
BinaryType | Immer Pflicht, ausser das Binary wird direkt per BinaryCodeID gesucht. |
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.
Wird kein Binary mit den durch die Parameter festgelegten Kriterien gefunden wird ein 404 Not found
geliefert.
Es wird ein Etag
-Header erzeugt, der je nach Parametern abhängig ist:
Der Cache-Control
-header stellt die max-age
per default auf 10 Minuten ein.