Skip to main content
Beantwortet

Artikelbild per API abfragen / herunterladen

  • April 26, 2023
  • 5 Antworten
  • 166 Ansichten

Forum|alt.badge.img+2

Hallo,

weiß jemand, wie man Artikelbilder per API herunterladen kann?

https://update.xentral.biz/apidoc/docs223.html#v1_dateien

Das Herunterladen würde sicher funktionieren per /v1/dateien/{id}/download – aber woher weiß ich die ID?

Ich hätte sie bei den Artikelinformationen erwartet. Aber wenn ich per /v1/artikel/{id} einen Artikel abfrage und in der JSON-Antwort nach “bild”, “datei”, “id”, “file”, “image” suche kommt nur das:

{
"data": {
"id": 419,
"standardbild": "",
"logdatei": "2023-04-26 13:52:48",
"webid": "",
"bildvorschau": "4004_100_100",
}
}

Der Beispiel-Artikel hat 3 JPEG-Bildern mit Stichwort “Standard Artikelbild (Shopbild)” hinterlegt.

Falls es so gedacht ist, dass man zuerst per /v1/dateien sucht – was sollen dann die Suchparameter sein? belegtyp=”artikel”? Und wie würde ich nach der ID bzw. Artikelnummer filtern?

Beste Antwort von Pau Ferrandiz

Hey @Jakob Schöttl & @Matthias Beuck* 

ihr braucht keine SQL davor machen…

Einfach euer API Call mit ein ?include=dateien ergänzen

v1/artikel/267?include=lagerbestand,dateien

ihr bekommt dann in die Response die Datei-ID

"dateien": [
{
"id": 29,
"titel": "Standardbild",
"beschreibung": "",
"subjekt": "Shopbild",
"artikel": "267",
"nummer": ""
}

und damt könnt ihr mit ein 

/v1/dateien/115/download

genau diese Datei herunterladen.

 

Ich hoffe, diese Informationen helfen euch weiter.

 

5 Antworten

Matthias Beuck*
Forum|alt.badge.img

Hallo,

wir erweitern die API bei fehlenden API-Calls bzw. Werten, die die API nicht liefert, mit Berichten, die wir vor der eigentlichen Abfrage laufen lassen.

Also in Deinem Fall etwa so (nicht getestet) :

SELECT 
d.datei AS id
FROM datei_stichwoerter d
LEFT JOIN datei_version dv ON d.datei = dv.datei
LEFT JOIN artikel a ON d.parameter = a.id
WHERE a.id = 419

 

Dann den Bericht per API abfragen:

https://update.xentral.biz/apidoc/docs223.html#v1_reports

Das liefert die richtigen ID’s, die Du dann hiermit verwursten kannst:

https://update.xentral.biz/apidoc/docs223.html#v1_dateien

 


Forum|alt.badge.img+2

Danke Matthias!

Leider umständlich, SQL schreiben, CSV parsen, JSON-API Abfrage starten…

aber immerhin eine Lösung. Danke!


Matthias Beuck*
Forum|alt.badge.img

Ja, das stimmt.

Aber man muss das ja nur einmal machen und kann dann mit dieser Vorlage und nötigen kleineren Anpassungen alle Tabellen der Datenbank auslesen.


Pau Ferrandiz
Xentraleer
Forum|alt.badge.img+2
  • Xentraleer
  • Antwort
  • April 27, 2023

Hey @Jakob Schöttl & @Matthias Beuck* 

ihr braucht keine SQL davor machen…

Einfach euer API Call mit ein ?include=dateien ergänzen

v1/artikel/267?include=lagerbestand,dateien

ihr bekommt dann in die Response die Datei-ID

"dateien": [
{
"id": 29,
"titel": "Standardbild",
"beschreibung": "",
"subjekt": "Shopbild",
"artikel": "267",
"nummer": ""
}

und damt könnt ihr mit ein 

/v1/dateien/115/download

genau diese Datei herunterladen.

 

Ich hoffe, diese Informationen helfen euch weiter.

 


Forum|alt.badge.img+2

Danke Pau! Wenn das in der API Doku stehen würde, wär’s super.

Ich würde deine Antwort gern “als beste Antwort markieren” aber irgendjemand hat schon Matthias Antwort so markiert.