デバイスから Harvest Data にデータを送信する場合、Unified Endpoint のエントリポイントと、Harvest Data 固有のエントリポイント (harvest.soracom.io など) のどちらにも送信できます。
このページでは、どちらを使うべきかの判断基準と、実装時の注意点を説明します。エントリポイントの一覧については、エントリポイント一覧 を参照してください。
新規実装では、特別な理由がなければ Unified Endpoint を利用します
Harvest Data に関して、Unified Endpoint 経由で利用できない機能はありません。すでに Harvest Data 固有のエントリポイントを利用している場合、変更する必要はありません。
どちらを使うべきか
以下のいずれかに該当する場合は、Unified Endpoint を利用します。
- 将来的に SORACOM Funnel や SORACOM Funk など、他のサービスへの転送を追加する可能性がある。
- 同じデータを複数のサービスに複製して送信する。
- デバイス側の設定や実装を変更せずに、あとから転送先を切り替えられるようにする。
実装上の注意点 (Unified Endpoint 全般)
以下は Unified Endpoint に共通する注意点です。Harvest Data に限らず、SORACOM Funnel や SORACOM Funk などの他のサービスを利用する場合にも当てはまります。
TCP で送信する場合は、応答を受信してから接続を閉じます
TCP エントリポイントにデータを送信するときに、サーバーからの応答を受信する前にクライアント側から接続を閉じると (送信方向を閉じる実装を含む)、送信したデータが破棄される場合があります。応答 (ステータスコードを含む行) を受信してから接続を閉じます。
この点は、Harvest Data 固有のエントリポイントなど、サービス固有のエントリポイントに直接送信する場合も同様です。
TCP で送信する場合のデータサイズの制限については、エントリポイント一覧 を参照してください。
カスタムレスポンス機能の format には Custom を指定します
SORACOM CLI や SORACOM API で Unified Endpoint のレスポンス形式を「カスタム」に設定するときは、format の値に Custom (先頭が大文字) を指定します。custom (小文字) を指定した場合、設定は保存されますが反映されず、「Auto (デフォルト)」の形式のまま動作します。
Unified Endpoint のレスポンス形式について詳しくは、Unified Endpoint のレスポンスの形式を設定する を参照してください。
実装上の注意点 (Harvest Data 固有)
カスタムタイムスタンプ機能
「送信データに含めた時刻」をタイムスタンプとして利用する 機能、および x-soracom-timestamp ヘッダーによる方式は、いずれも Unified Endpoint 経由で利用できます。
HTTP メソッド
Harvest Data の HTTP エントリポイントは、HTTP メソッドをチェックしていません。POST 以外のメソッドでリクエストを送信した場合も、リクエストボディが処理されます。
一方、SORACOM Funnel と SORACOM Funk は、POST 以外のメソッドを 405 Method Not Allowed で拒否します。Harvest Data・SORACOM Funnel・SORACOM Funk のみを有効にしているグループの場合、Unified Endpoint 経由でも POST 以外のメソッドは 405 Method Not Allowed になります。有効になっている転送先によって、実際に使用できるメソッドが異なる場合があるため、Unified Endpoint 経由で送信する場合は、POST メソッドを使用します。