バイナリデータをファイルとして保存したものをバイナリファイルと呼びます。サーバーへバイナリデータを送信することは、データサイズの削減、処理速度の向上、様々なデータ表現の実現などのメリットがあります。本文では、バイナリデータの基本情報を解説した上、使いやすいツールを使ってバイナリデータを簡単にサーバーに送信する方法を皆さんに紹介します。
バイナリデータとは
バイナリデータとは、二進数のデータを意味して、コンピュータが内部的に使用する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のサーバーサイドにバイナリデータを送信することも非常に簡単です。
ステップ⒈既存のAPIを開くか、新しいAPIを新規に作成して、APIエンドポイントのURLを入力した上、HTTPメソッドをPOSTに指定します。
ステップ⒉「Body」タブに切り替え、Content-Typeを「Binary」にし、ここでバイナリデータを選択してアップロードすることができます。
バイナリファイルをアップロードした上、「送信」ボタンをクリックして、このバイナリファイルをサーバーに送信することができます。
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-Type
を multipart/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に対してそのバイナリデータが送信されるという流れです。
このようにApidogを活用することで、API開発者はコードを書くことなく、バイナリデータをサーバーに送信するテストが可能となります。ただし、バイナリデータの取り扱いにはその特性上、セキュリティ等の観点から注意が必要です。