2

文字列とバイナリデータFooが混在するオブジェクトを受け入れるRESTサービスを構築しています。これは私がこれまでに入手したXMLです。

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

これは良い考えですか、それとも大量(MB)のバイナリデータをインライン化する欠点がありますか?

マイナーな設計の詳細として、バイナリデータの使用<text mime=".."/>または専用の名前のどちらを使用するかを決めようとしています。<binary>...</binary>どちらがより首尾一貫しているでしょうか?

4

3 に答える 3

2

要求/応答xmlに、渡すバイナリデータを格納し、別の要求を実行してそのデータを取得する場所のみを含めることをお勧めします。そのソリューションの短所は別のリクエストを実行することですが、長所はあなたの味方です:

  • 64文字列をシリアル化/逆シリアル化する必要はありません
  • あなたの残りのwsのより簡単なテスト
  • 肥大化の少ないxml
于 2012-01-11T09:28:38.737 に答える
0

HTTPは、任意の長さのペイロードを送信するように設計されています。MBのデータを送信しても問題ありません。base64エンコーディングでデータを送信すると、ネットワーク経由で送信する必要のあるバイト数が増え、スループットが低下するため、お勧めしません。

代わりに、XMLではなくマルチパートのmimeタイプを検討することをお勧めします。

于 2012-01-11T09:29:35.037 に答える
0

Webサービスコンテナは何ですか?xmlの形式は、バイナリシリアライザーによって生成されます。axis2はあなたにとって良いかもしれません。それは公理に基づいており、直接バイナリサポートを提供します

于 2012-01-11T09:33:40.717 に答える