2012-01-26 11 views
4

ウェブサービス(通常は、例えば、簡単な例:JSONs)は、大きなバイナリ入出力データを処理して返しますか?RESTサービスとビッグファイル

私は、大きなファイルを提供するHTTP POSTによってRESTサービスを呼び出し、後で大きな結果を読み返すことを意味しますか?それでRESTは大丈夫ですか? ( "Big" =数MB)

+0

わずか数メガバイト。 – Cartesius00

+0

RESTアーキテクチャは、どのメディアタイプにも限定されません。 –

答えて

3

JSONやXMLなどのテキストシリアライザでは、バイナリデータをBase64でエンコードする必要があるため、ファイルサイズは約33%増加します。このシナリオを処理するために、MTOMのような最適化されたプロトコルがあります。 WCF supports MTOMをそのまま使用してください。

+0

ありがとうございます。 1つの質問ですが、JSONはバイナリデータをサポートしていますか? – Cartesius00

+0

@Jamesの場合、JSONはテキストであるため、バイナリデータを通常はBase64でテキスト表示にエンコードする必要があります。これは、メッセージサイズが大幅に増加します。 –

+0

JSONがなければ、RESTはHTTP GETを使用してバイナリデータを "直接"返しますか? – Cartesius00

3

RESTアーキテクチャーは、HTTPを使用してapplication/octet-streamを処理することができます。これはバイトストリームです。 HTTPは非常に大きなファイルを確実に確実に処理できます。

2

RESTは主にHTTP経由のサービスなので、HTTPの標準的な利点と制限がRESTサービスにも適用されます。大きなファイルをWebアプリケーションにアップロードするのと同様の方法で、数MBの大きなファイルをREST APIのPOSTとして送信することができます。