1. ホーム
  2. json

[解決済み] RESTful WebServiceにファイルや関連データをJSONで投稿する。

2022-03-23 19:46:01

質問

これはおそらく愚かな質問になるだろうが、私はそのような夜を持っている。あるアプリケーションで私はRESTful APIを開発しており、クライアントがJSONとしてデータを送信することを望んでいます。このアプリケーションの一部では、クライアントがファイル(通常は画像)と画像に関する情報をアップロードする必要があります。

これが1回のリクエストでどのように起こるのか、追跡するのに苦労しています。 ファイルデータをBase64してJSON文字列にすることは可能でしょうか? サーバーに2回投稿する必要があるのでしょうか? 私はこのためにJSONを使用しない方が良いですか?

余談ですが、私たちはバックエンドにGrailsを使用しており、これらのサービスはネイティブのモバイルクライアント(iPhone、Androidなど)からアクセスされています。

どのように解決するのですか?

同じような質問をこちらでさせていただきました。

REST ウェブサービスを使用して、メタデータ付きのファイルをアップロードするにはどうすればよいですか?

基本的には3つの選択肢があります。

  1. Base64でエンコードすると、データサイズが約33%増加し、エンコード/デコードのためにサーバーとクライアントの両方で処理のオーバーヘッドが発生します。
  2. ファイルを最初に multipart/form-data POSTし、クライアントにIDを返す。その後、クライアントがメタデータをIDとともに送信し、サーバーがファイルとメタデータを再関連付けする。
  3. メタデータを先に送信し、クライアントにIDを返します。その後、クライアントがそのIDを持つファイルを送信し、サーバーがファイルとメタデータを再関連付けします。