Ich bin aktuell dabei, eine REST-Schnittstelle zu modellieren, über die auch (u.a.) Bilder inklusive Metadaten abfragen lassen. Metadaten (zB Titel, Beschreibung, ...) und Bilder gehören dabei immer zu einer übergeordneten Resource
Bisher hab ich mehrere mögliche Varianten, wie man das modellieren könnte, aber sicher, welche am sinnvollsten ist, bin ich mir noch nicht...
Variante 1:
Bilddaten als Resource, Metadaten als Unterresource davon.
Variante 2:
Variante 1 umgedreht, Metadaten als Resource, Bild als Unterresource.
Variante 3:
Beide als eine Resource, je nach gewünschten Content-Type wird dann zB PNG oder JSON ausgeliefert.
Variante 4:
Eine Resource, die dann zB JSON ausliefert, wobei das Bild dann Base64-codiert eingebettet wird.
Variante 5:
Bilddaten als völlig eigene Resource, Metadaten verweisen dann auf die Bilddaten
Irgendwer eine Meinung dazu, irgendwelche besonderen Vor-/Nachteile der einzelnen Varianten? Oder vielleicht sogar noch eine weitere (bessere) Variante?
Bisher hab ich mehrere mögliche Varianten, wie man das modellieren könnte, aber sicher, welche am sinnvollsten ist, bin ich mir noch nicht...
Variante 1:
Bilddaten als Resource, Metadaten als Unterresource davon.
GET /context/images/42
-> liefert PNGGET /context/images/42/info
-> liefert JSONVariante 2:
Variante 1 umgedreht, Metadaten als Resource, Bild als Unterresource.
GET /context/images/42
-> liefert JSONGET /context/images/42/data
-> liefert PNGVariante 3:
Beide als eine Resource, je nach gewünschten Content-Type wird dann zB PNG oder JSON ausgeliefert.
GET "Accept: application/json" /context/images/42
-> liefert JSONGET "Accept: image/png" /context/images/42
-> liefert PNGVariante 4:
Eine Resource, die dann zB JSON ausliefert, wobei das Bild dann Base64-codiert eingebettet wird.
GET /context/images/42
-> liefert {data:"UG9seWZvbiB6...", name: "Blub"}
Variante 5:
Bilddaten als völlig eigene Resource, Metadaten verweisen dann auf die Bilddaten
GET /context/images/42
-> liefert {image:"/images/xyz", name: "Blub"}
GET /images/xyz
-> liefert PNGIrgendwer eine Meinung dazu, irgendwelche besonderen Vor-/Nachteile der einzelnen Varianten? Oder vielleicht sogar noch eine weitere (bessere) Variante?
Zuletzt bearbeitet: