Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / 観点 / バイナリデータとは、それをサーバーに送信する方法は?

バイナリデータとは、それをサーバーに送信する方法は?

バイナリデータをファイルとして保存したものをバイナリファイルと呼びます。サーバーへバイナリデータを送信することは、データサイズの削減、処理速度の向上、様々なデータ表現の実現などのメリットがあります。本文では、バイナリデータの基本情報を解説した上、使いやすいツールを使ってバイナリデータを簡単にサーバーに送信する方法を皆さんに紹介します。

バイナリデータをファイルとして保存したものをバイナリファイルと呼びます。サーバーへバイナリデータを送信することは、データサイズの削減、処理速度の向上、様々なデータ表現の実現などのメリットがあります。本文では、バイナリデータの基本情報を解説した上、使いやすいツールを使ってバイナリデータを簡単にサーバーに送信する方法を皆さんに紹介します。

バイナリデータとは

バイナリデータとは、二進数のデータを意味して、コンピュータが内部的に使用する2進数(0と1)のデータのことを指します。コンピュータが「0」と「1」の2文字しか解釈できないため、コンピュータがデータを読み取れるため、バイナリデータが非常に汎用されています。具体的には、バイナリデータは次のような特徴があります:

  • テキストデータではなく、人間に直接読み取れないデータフォーマットである
  • 0と1のビットの並びで表現される
  • 画像ファイル、動画ファイル、実行ファイルなど、コンピュータが処理・実行するためのデータがこれに該当する
  • テキストよりも小さいデータサイズで表現できる場合が多い
  • エンコード/デコードすることでテキストデータとの変換が可能

バイナリデータを扱う場合、特別な注意が必要です。例えば人間が直接編集できないため、バイナリエディタという専用ツールを使用することが多いです。

バイナリファイルとは?

バイナリデータを保存するファイルをバイナリファイルと呼ばれています。実際には、我々もバイナリファイルを毎日も扱っています。バイナリファイルにはさまざまな種類がありますが、主なものとしては以下があげられます。

実行ファイル

  • Windowsのexeファイル、LinuxのELFファイルなど
  • プログラムを実行するのに必要な機械語やデータが含まれる

画像ファイル

  • JPEG、PNG、GIFなどの画像データが含まれる
  • 圧縮されていることが多い

動画ファイル

  • MP4、AVI、MKVなどの動画データが含まれる
  • 画像よりも大きなデータサイズであることが多い

文書ファイル

  • Microsoft WordのDOCXファイル、PDFファイルなど
  • テキストや画像、レイアウトデータが含まれる

圧縮ファイル

  • ZIP、RAR、7zなどによる圧縮データ
  • 容量削減やまとめた保存ために用いられる

この他にも音楽ファイルや各種データベースや通信ログなど、コンピュータが扱うほとんどのデータはバイナリ形式で保存されています。

バイナリデータのアップロードについて

上記のように、コンピューターは、バイナリデータのみを扱えますので、実際にWebアプリの開発中に、ファイルをバイナリデータのフォーマットでアップロードするのがごく一般です。それでは、なぜかバイナリデータというフォーマットでファイルをアップロードしますか?実際には、様々なメリットがあると思います。

データサイズを小さくできる

テキストデータと比べて、同じ情報量をより小さいデータで表現できることがあります。容量削減が可能なため転送や保存に適しています。

処理速度が速い

文字列処理に比べて単純なデータ構造の方がコンピュータの処理速度は速くなります。大量のデータを高速に扱う用途に適しているためです。

様々なデータ表現ができる

文字だけでなく画像、音声、動画など、コンピュータが扱うほぼすべてのデータをバイナリ形式で表現できます。複合的なデータを1つにまとめることができる利点があります。

ハードウェアやOSとの親和性が高い

コンピュータのハードウェアやOSが操作するのは機械語のバイナリ命令です。ハードウェアに依存しない抽象的な表現よりも、バイナリデータの方が親和性が高く効率的となります。

以上の理由から、様々な場面でバイナリフォーマットが活用されているのです。欠点もあるので、用途に応じて適切なデータ表現を選択することが大切です。

Apidogでバイナリデータをサーバーに送信

Apidogは、非常に包括的なAPI管理ツールとして、APIの設計、仕様書生成、開発、テスト、モックなどにも対応しています。Apidogを利用して、APIのサーバーサイドにバイナリデータを送信することも非常に簡単です。

button

ステップ⒈既存のAPIを開くか、新しいAPIを新規に作成して、APIエンドポイントのURLを入力した上、HTTPメソッドをPOSTに指定します。

エンドポイントとHTTPメソッドを指定

ステップ⒉Body」タブに切り替え、Content-Typeを「Binary」にし、ここでバイナリデータを選択してアップロードすることができます。

Apidogでバイナリデータを送信

バイナリファイルをアップロードした上、「送信」ボタンをクリックして、このバイナリファイルをサーバーに送信することができます。

Axiosでバイナリデータをサーバーに送信

また、コーディング能力があるユーザーは、Axiosを利用してバイナリデータをサーバーに送信することも可能です。

ステップ⒈FromDataオブジェクトの作成

まずはバイナリデータをFromDataオブジェクトに追加する必要があります。FromDataは、テーブルのフォーマットでデータをサーバーに送信します。

let formData = new FormData();
formData.append('file', binaryData, 'filename.ext');

ここでの 'file'はサーバーサイドがで取得したファイルのフィールド名なり、binaryDataはアップロードしたバイナリデータになります。このバイナリデータはファリル( <input type="file">から取得するファイル)か、任意のBlobオブジェクトです。また、'filename.ext'はサーバーに保存しようとするファイル名になります。

ステップ⒉Axiosの設定

そして、Axiosでリクエストを設定する必要があります。特に headersです。ファイルをアップロードするので、ブラウザが自動的に Content-Typemultipart/form-dataに設定されるので、非常に便利です。

const config = {
  headers: {
    // `Content-Type` はブラウザに自動的に設定される
    'Accept': 'application/json', // サンプルです、実際のニーズに従って設定
  },
};

3. リクエストの送信

最後に、Axiosを利用してこの formDataオブジェクトを送信します。

axios.post('your-server-endpoint', formData, config)
  .then(response => {
    // 处理成功的响应
    console.log(response.data);
  })
  .catch(error => {
    // 处理错误
    console.error(error);
  });

ここの 'your-server-endpoint' は、ファイルをアップロードしたいサーバーのエンドポイントURLになります。

ご案内:サーバーサイドもmultipart/form-dataのリクエストを受信できて、ファイルを処理できるように正しく設定する必要があります。

まとめ

ApidogはAPIの设計やテスト、モックを支援する包括的なプラットフォームです。このApidog上でバイナリデータの送信は簡単に実現できます。具体的にはAPIエンドポイントを設定し、Bodyタブのコンテンツタイプをバイナリに指定した上で、バイナリファイルを選択・アップロードします。送信ボタンを押すことで、指定したAPIに対してそのバイナリデータが送信されるという流れです。

button

このようにApidogを活用することで、API開発者はコードを書くことなく、バイナリデータをサーバーに送信するテストが可能となります。ただし、バイナリデータの取り扱いにはその特性上、セキュリティ等の観点から注意が必要です。

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。