Ich habe einen Server und ich muss Dateien zusammen mit einigen Feldern vom Client auf den Server hochladen. Ich verwende derzeit Standard-Multipart/Form-Daten.Ist multipart/form-data besser als JSON + Base64?
Ich habe jedoch festgestellt, dass die Verwendung von Multipart/Form-Daten nicht ideal ist. Objekte auf meinem Server können andere Objekte enthalten, die in ihnen verschachtelt sind, und sie werden daher als ein JSON-Objekt mit anderen eingebetteten JSON-Objekten dargestellt.
Ich möchte für den Client starten POST/PUT-Anfragen mit einer JSON-Darstellung genau wie es in einer GET-Anfrage an den Server, in einer REST-ful-Weise erwarten würde. Auf diese Weise muss ich die Felder nicht glätten, die möglicherweise mehrere Ebenen innerhalb des JSON-Objekts verschachtelt haben, um mehrteilige/Formulardaten zu verwenden.
Problem ist, JSON stellt keine binären Daten. Multipart/Formulardaten scheinen keine Möglichkeit zu haben, Felder darzustellen, die in den Werten anderer Felder verschachtelt sind. Aber es hat eine viel bessere Handhabung von Datei-Uploads.
Ich bin ratlos, wie das zu gestalten ist. Soll ich nur den Client JSON mit den in base64 codierten Feldern hochladen lassen und den 25% Treffer machen? Oder soll ich das JSON-Objekt als eine Art "json" -Variable in einer Multipart/form-data-Anfrage darstellen lassen und die Binärdateien als weitere Variable hochladen?
Der letzte Ansatz, der separate Aufrufe befürwortet (eine für das Multipart-Bild und eine andere für die JSON-Daten), ist interessant. Das einzige Problem sind 2 API-Aufrufe anstelle von einem. Dieser Trade-Off ist natürlich App-spezifisch. –