Unified Endpoint のレスポンスのフォーマットは、グループ設定の
で変更できます。→ | 説明 |
---|---|
Auto (デフォルト) | 有効な転送設定が 1 つの場合は、そのサービスのフォーマットのレスポンスが返されます。同じグループ設定に、以下の 2 つ以上の設定で有効な転送先が設定されている場合は Unified 形式 でレスポンスが返されます。 |
Unified | Unified 形式 でレスポンスが返されます。 |
SORACOM Beam | Beam のレスポンスのみが返されます。他の転送設定がある場合、データは転送しますがその結果は返されません。 |
SORACOM Funk | Funk のレスポンスのみが返されます。他の転送設定がある場合、データは転送しますがその結果は返されません。 |
SORACOM Funnel | Funnel のレスポンスのみが返されます。他の転送設定がある場合、データは転送しますがその結果は返されません。 |
SORACOM Harvest Data | Harvest Data のレスポンスのみが返されます。他の転送設定がある場合、データは転送しますがその結果は返されません。 |
カスタム | あらかじめ設定したレスポンスが常に返されます。成功時、エラー時のレスポンスをそれぞれ設定できます。 |
Unified 形式
Unified 形式のレスポンスのフォーマットは以下のとおりです。
ステータスコード
すべての転送先へのリクエストが成功した場合は 200
が、ひとつでも失敗した場合は 207
が返されます。
プロパティ
プロパティ | 説明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
result |
| ||||||||||
detail | 各転送先のレスポンスがオブジェクト形式で含まれます。 TCP や UDP で Unified Endpoint に送信した場合も、転送のために HTTP が利用されるため、HTTP 形式で返却されます。 | ||||||||||
detail.${サービス名} (*1) | サービスごとのレスポンスが以下のフォーマットで返されます。
|
(*1)
${サービス名}
は、以下のいずれかです。SoracomBeam
SoracomFunk
SoracomFunnel
SoracomHarvest
転送先が設定されていない、またはすべて無効化されている場合は、400 Subscriber configuration is not found
という文字列が返されます。
レスポンスが返されるタイミングについて
- すべての転送先からのレスポンスが返されてから、Unified Endpoint からデバイスにレスポンスが返されます。
- Funnel は転送先へのリクエストを非同期に処理します。そのため、転送先にリクエストが転送されるタイミングと、デバイスにレスポンスが返されるタイミングには、差があります。
レスポンスの例
すべての転送先で正常に送信できた場合の例
ステータスコード:
200
ボディ:
{ "result": "ok", "detail": { "SoracomBeam": { "statusCode": 200, "contentType": "text/html;charset=utf-8", "body": "Success: {\"temperature\"=>12.3, \"humidity\"=>45.6, \"time\"=>\"2024-09-02T12:34:56.789Z\"}", "headers": { "content-type": "text/html;charset=utf-8", "content-length": "84", "x-xss-protection": "1; mode=block", "x-content-type-options": "nosniff", "x-frame-options": "SAMEORIGIN", "connection": "close", "server": "thin" } }, "SoracomHarvest": { "statusCode": 201 } } }
1 つ以上の転送先からエラーが返却された場合
ステータスコード:
207
ボディ:
{ "result": "ng", "detail": { "SoracomBeam": { "statusCode": 200, "contentType": "text/html;charset=utf-8", "body": "Success: {\"temperature\"=>12.3, \"humidity\"=>45.6, \"time\"=>\"2024-09-02T12:34:56.789Z\"}", "headers": { "content-type": "text/html;charset=utf-8", "content-length": "84", "x-xss-protection": "1; mode=block", "x-content-type-options": "nosniff", "x-frame-options": "SAMEORIGIN", "connection": "close", "server": "thin" } }, "SoracomHarvest": { "statusCode": 400, "body": "Invalid custom timestamp value in request" } } }
カスタムレスポンス機能
レスポンスのフォーマットで「カスタム」を選択した場合、成功時のレスポンスと失敗時のレスポンスを指定できます。
すべての転送先に対して正常に送信できた場合は「成功時のレスポンス」が返却されます。いずれかの転送先でエラーが返却された場合は「失敗時のレスポンス」が返却されます。
設定 | 説明 |
---|---|
HTTP ステータスコード | 成功時および失敗時のステータスコードを指定します |
Content-Type ヘッダーの値 | レスポンスの Content-Type ヘッダーの値を指定してください。たとえば application/json を指定します。 |
Body | レスポンス Body の値を指定します。 |
ステータスコードを省略 | 当設定は TCP/UDP 送信時のレスポンスが対象となります。送信後のレスポンスにステータスコードを含みません。(Body のみが送信されます。) |