Soracom

Users

ドキュメント
Home ドキュメント SORACOM Funk リファレンス

レスポンス

Funk では、転送先のパブリッククラウド (FaaS) の Function のレスポンスが、そのままデバイスに返却されます。

転送先の Function からエラーが返却された場合は、内容に応じて、400 番台または 500 番台のステータスコードと、転送先の Function のレスポンスが、そのままデバイスに返却されます。また、エラーの内容によっては、SORACOM ユーザーコンソールのエラーログにエラーが出力されることがあります。

Funk では、エラーコードは追加されません。

SORACOM Funk 形式

Funk のエントリポイントを利用している場合、または Unified Endpoint のレスポンスのフォーマットに SORACOMFunk を指定している場合は、以下のようなレスポンスが返却されます。これを、SORACOM Funk 形式と呼びます。

${HTTP ステータスコード (UTF-8)} + ${半角スペース (UTF-8)} + ${転送先のレスポンス}

なお、転送先のレスポンスがテキストデータの場合は、SORACOM Funk 形式のレスポンスもテキストデータで、デバイスに返却されます。一方で、転送先のレスポンスがバイナリデータの場合は、SORACOM Funk 形式のレスポンスもバイナリデータで、デバイスに返却されます。

例:

転送先のレスポンス
(ステータスコード)
転送先のレスポンス
(データ)
SORACOM Funk 形式のレスポンス
500テキストデータ NG
(UTF-8 表記)
テキストデータ 500 NG
(UTF-8 表記)
200バイナリデータ abcd
(Hex 表記)
バイナリデータ 32303020abcd
(Hex 表記。32303020 は、32230020 が半角スペースを表します。Base64 形式でエンコードされません)

Unified Endpoint の Unified 形式

Unified Endpoint を利用している場合に、レスポンスの形式を Unified にしているときは、以下のようにすべてのレスポンスがまとめられて、デバイスに返却されます。Funk のレスポンスの body は、常に Base64 形式でエンコードされます。

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

Unified 形式について詳しくは、レスポンスの形式を設定する を参照してください。