Ressource: image (Bilder in der Datenbank) #
Adressen und Artikel tragen ihr Bild direkt in der EULANDA-Datenbank
(Spalten Bild, BildVorschau, BildRevision). Die API liest und
schreibt diese Blobs; bei jedem Schreiben wird BildRevision erhöht,
damit EULANDA-Clients ihre Caches invalidieren.
EULANDA-Konvention (aus den Bestandsdaten): Hauptbild max. 650 px
Kantenlänge, Vorschaubild max. 320 px, Format JPEG. Die API nimmt
nur JPEG an (422 IMAGE_FORMAT_INVALID sonst), skaliert zu große Bilder
automatisch herunter und erzeugt beim Setzen des Hauptbilds das
Vorschaubild gleich mit.
Endpunkte #
| Methode | Pfad | Scope | Zweck |
|---|---|---|---|
| GET | /api/v1/addresses/{id}/image | addresses:read | Hauptbild (JPEG) |
| GET | /api/v1/addresses/{id}/image/preview | addresses:read | Vorschaubild |
| PUT | /api/v1/addresses/{id}/image | addresses:write | Hauptbild setzen (Body = JPEG); Vorschau wird miterzeugt |
| PUT | /api/v1/addresses/{id}/image/preview | addresses:write | Vorschaubild explizit setzen |
| DELETE | /api/v1/addresses/{id}/image | addresses:write | Bild und Vorschau entfernen |
Für Artikel identisch unter /api/v1/articles/{id}/image... mit den
Scopes articles:read / articles:write.
Kein Bild hinterlegt: 404 IMAGE_NOT_FOUND. Antwort auf PUT:
{ "image": "...", "sizeBytes": n, "resized": bool, "previewGenerated": bool } -
ist previewGenerated false (GDI+ nicht verfügbar), das Vorschaubild
anschließend explizit per PUT .../image/preview setzen.
Beispiele #
Artikelbild laden:
$h = @{ Authorization = "Bearer $key" }
Invoke-WebRequest 'http://localhost:8100/api/v1/articles/1/image' -Headers $h -OutFile 'C:\Temp\artikel1.jpg'
curl.exe -H "Authorization: Bearer %KEY%" -o artikel1.jpg "http://localhost:8100/api/v1/articles/1/image"
Adressbild setzen (Vorschau entsteht automatisch):
Invoke-RestMethod 'http://localhost:8100/api/v1/addresses/14/image' `
-Method Put -Headers $h -ContentType 'image/jpeg' -InFile 'C:\Fotos\firma.jpg'
curl.exe -X PUT -H "Authorization: Bearer %KEY%" -H "Content-Type: image/jpeg" --data-binary "@C:\Fotos\firma.jpg" "http://localhost:8100/api/v1/addresses/14/image"
Vorschaubild laden bzw. Bild entfernen:
Invoke-WebRequest 'http://localhost:8100/api/v1/addresses/14/image/preview' -Headers $h -OutFile 'C:\Temp\vorschau.jpg'
Invoke-RestMethod 'http://localhost:8100/api/v1/addresses/14/image' -Method Delete -Headers $h
curl.exe -H "Authorization: Bearer %KEY%" -o vorschau.jpg "http://localhost:8100/api/v1/addresses/14/image/preview"
curl.exe -X DELETE -H "Authorization: Bearer %KEY%" "http://localhost:8100/api/v1/addresses/14/image"
Fehlercodes dieser Ressource #
| HTTP | Code | Bedeutung |
|---|---|---|
| 404 | NOT_FOUND | Datensatz existiert nicht |
| 404 | IMAGE_NOT_FOUND | Kein Bild hinterlegt |
| 422 | IMAGE_FORMAT_INVALID | Body ist kein JPEG |
| 413 | PAYLOAD_TOO_LARGE | Bild über dem Upload-Limit |