REST dati binari
-
27-10-2019 - |
Domanda
Sto costruendo un Foo
servizio REST accettare oggetti che contengono un mix di Stringa e dati binari. Questo è il codice XML ho ottenuto finora.
<foo>
<text>regular text</text>
<text mime="application/octet-stream">base64 encododed binary data</text>
</foo>
E 'una buona idea o ci sono svantaggi inlining grandi quantità (MB) di dati binari?
Come un dettaglio di design minore, sto cercando di stabilirsi tra l'utilizzo di <text mime=".."/>
o un nome <binary>...</binary>
dedicato per i dati binari. Che sarebbe più coerente?
Soluzione
mi sento di raccomandare compresi nella richiesta / risposta di XML solo la posizione in cui si memorizzare i dati binari si desidera passare e quindi recuperare i dati che l'esecuzione di un'altra richiesta. I contro di questa soluzione potrebbe essere quella di eseguire un altro richiesta, ma i pro sono dalla tua parte:
- non c'è bisogno di serializzare / deserializzare il tuo 64 stringhe
- semplice test delle tue ws riposo
- xml meno gonfio
Altri suggerimenti
HTTP è progettato per carichi di trasmissione di lunghezza arbitraria. L'invio di MB di dati andrà bene. Trasmissione dei dati con codifica Base64 non è consigliato perché sarà aumento il numero di byte che è necessario inviare oltre il filo, il throughput degradanti.
vorrei suggerire invece che si considera un multipart MIME tipo di piuttosto che XML.
qual è il tuo contenitore di webservice? il formato XML sarebbe generato dal vostro serializzatore binario. axis2 può essere buono per voi. si basa su assioma, offrendo supporto binario diretta ??p>