Frage

Ich baue einen REST -Service an, der akzeptiert Foo Objekte, die eine Mischung aus String enthalten und Binärdaten. Dies ist der XML, den ich so weit bekommen habe.

<foo>
     <text>regular text</text>
     <text mime="application/octet-stream">base64 encododed binary data</text>
</foo>

Ist dies eine gute Idee oder gibt es Nachteile, die große Mengen (MB) von Binärdaten beeinträchtigen?

Als kleines Designdetail versuche ich mich zwischen der Verwendung niederzulassen <text mime=".."/> oder ein spezieller Name <binary>...</binary> Für die binären Daten. Welches wäre kohärenter?

War es hilfreich?

Lösung

Ich würde empfehlen, in Ihre Anfrage/Antwort -XML -XML einzigen Ort aufzunehmen, an dem Sie die binären Daten speichern, die Sie übergeben möchten, und dann diese Daten abzurufen, die eine andere Anfrage ausführen. Die Nachteile dieser Lösung bestehen darin, eine andere Anfrage auszuführen, aber die Profis sind auf Ihrer Seite:

  • Sie müssen Ihre 64 Saiten nicht serialisieren/deserialisieren
  • Einfachere Prüfung Ihrer Ruhe -WS
  • Weniger aufgeblähtes XML

Andere Tipps

HTTP ist so konzipiert, dass sie Nutzlasten der willkürlichen Länge übertragen. Das Senden von Daten von Daten ist in Ordnung. Die Übertragung der Daten durch Base64 -Codierung wird nicht empfohlen, da dies der Fall ist Zunahme Die Anzahl der Bytes, die Sie über den Draht senden müssen und der Durchsatz erniedrigt.

Ich würde stattdessen vorschlagen, dass Sie a in Betracht ziehen Mehrparteiger MIME -Typ eher als xml.

Was ist Ihr Webservice -Container? Das Format von XML würde von Ihrem binären Serializer erzeugt. Axis2 kann gut für Sie sein. Es basiert auf Axiom und bietet direkte Binärunterstützung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top