Soracom

Users

ドキュメント

レスポンスの形式を設定する

Unified Endpoint のレスポンスのフォーマットは以下から選択できます。

フォーマット説明
Auto (default)有効な転送設定が 1 つの場合は当該のサービスのフォーマットでレスポンスを返します。2 つ以上ある場合は 「Unified」 レスポンスフォーマットでレスポンスを返却します。
UnifiedUnified 形式でレスポンスを返却します。詳しくは、レスポンスのフォーマット Unified を参照してください。
SORACOMBeamBeam のレスポンスのみを返却します。他の転送設定がある場合、データは転送しますがその結果は返しません。
SORACOMFunnelFunnel のレスポンスのみを返却します。他の転送設定がある場合、データは転送しますがその結果は返しません。
SORACOMFunkFunk のレスポンスのみを返却します。他の転送設定がある場合、データは転送しますがその結果は返しません。
SORACOMHarvestHarvest Data のレスポンスのみを返却します。他の転送設定がある場合、データは転送しますがその結果は返しません。
カスタム指定したレスポンスを常に返却します。成功時、エラー時のレスポンスをそれぞれ設定できます。

レスポンスのフォーマット Unified

レスポンスのフォーマットで「Unified」を選択した場合、もしくは「Auto (default)」を選択して有効な転送設定が 2 つ以上ある場合、Unified 形式のレスポンスが返却されます。

加えて、以下のような動作をします。

  • すべての転送先からのレスポンスが返却されてから、デバイスにレスポンスが返却されます。
  • Funnel は転送先へのリクエストを非同期に処理しています。そのため、転送先にリクエストが転送されるタイミングと、デバイスにレスポンスが返却されるタイミングの間には遅延が発生します。
  • 転送先が設定されていない、またはすべて無効 (disabled) の場合は、フォーマットの指定によらず 400 Subscriber configuration is not found という文字列が返却されます。

フォーマットの各プロパティと、すべての転送先で正常に送信できた場合の例、いずれかの転送先でエラーが返却された場合の例は、以下のとおりです。

プロパティ説明
statusCodeすべての転送先へのリクエストが成功した場合は 200 が、ひとつでも失敗した場合は 207 が返却されます。
HTTP エンドポイントを利用した場合における、レスポンスの HTTP ステータスコードに相当します。
bodyHTTP エンドポイントを利用した場合における、レスポンスの HTTP Body です。内部構造は以下のとおりです。
body.resultすべての転送先へのリクエストが成功した場合は “ok” が、ひとつでも失敗した場合は “ng” が返却されます。
body.detail各転送先のレスポンスがオブジェクト形式で保存されています。オブジェクトのキーが SORACOM の各サービス名になっています。
TCP/UDP を利用した場合も、転送のために HTTP を利用しているので、HTTP 形式で返却されます。
body.detail.${サービス名}.statusCode転送先から返却された HTTP ステータスコードです。
body.detail.${サービス名}.body転送先から返却されたレスポンスの本文です。Funk の場合、常に base64 形式にエンコードされます。
body.detail.${サービス名}.encodingレスポンスが Base64 形式でエンコードされている場合、それを表す encoding: "base64" が付与されます。

すべての転送先で正常に送信できた場合

{
  "statusCode": 200,
  "body": {
    "result": "ok",
    "detail": {
      "beam": { "statusCode": 200, "body": "...." },
      "funnel": { "statusCode": 204, "body": "...." },
      "funk": { "statusCode": 200, "body": "....", "encoding": "base64" },
      "harvest": { "statusCode": 204, "body": "...." }
    }
  }
}

いずれかの転送先でエラーが返却された場合

いずれかの転送先から、 HTTP ステータスコードで 400 以上の値が返却された場合にエラーと判断されます。転送先に接続できなかった場合や SORACOM プラットフォーム内でエラーが発生した場合は、エラー内容に応じたステータスコードが返却されます。

{
  "statusCode": 207,
  "body": {
    "result": "ng",
    "detail": {
      "beam": { "statusCode": 200, "body": "...." },
      "funnel": { "statusCode": 204, "body": "...." },
      "funk": { "statusCode": 200, "body": "....", "encoding": "base64" },
      "harvest": { "statusCode": 400, "body": "...." }
    }
  }
}

カスタムレスポンス機能

レスポンスのフォーマットで「カスタム」を選択した場合、成功時のレスポンスと失敗時のレスポンスを指定できます。

unified_endpoint_overview unified_endpoint_overview

すべての転送先に対して正常に送信できた場合は「成功時のレスポンス」が返却されます。いずれかの転送先でエラーが返却された場合は「失敗時のレスポンス」が返却されます。

設定説明
HTTP ステータスコード成功時および失敗時のステータスコードを指定します
Content-Type ヘッダーの値レスポンスの Content-Type ヘッダーの値を指定してください。たとえば application/json を指定します。
Bodyレスポンス Body の値を指定します。
ステータスコードを省略当設定は TCP/UDP 送信時のレスポンスが対象となります。送信後のレスポンスにステータスコードを含みません。(Body のみが送信されます。)