firebase-cloud-functions を使用する firebase アプリケーションを作成しています。
インデックス
exports.auth = functions.https.onRequest((request, response) => {
response.status(200).send({
status : "Some Status"
});
}
POST
これは非常に単純な関数です。エンドポイントにペイロードをリクエストしたいのですが、 Firebase Cloud Function EmulatorとPOSTmanを使用してAPIをテストしたところ、bad json
{
"phoneNumber: "9632725300"
}
サーバーがクラッシュしました。私の質問は、このような Firebase 関数で不正なリクエストをどのように処理するかということです。
ベストアンサー1
サーバーはクラッシュしませんでした。不正なリクエスト (不正な JSON) が送信され、サーバーは「不正なリクエスト」を示すステータス コード 400 で正常に応答しました。
JSON を修正したほうがよいでしょう...
編集:
無効な JSON を送信できるようにしたい場合は、JSON ボディ パーサーを回避できます。これを行うには、リクエストを変更してコンテンツ タイプ ヘッダーを "text/plain" に設定します。このコンテンツ タイプはテキスト ボディ パーサーを使用し、JSON を解析しません。
ただし、これを行うには JSON 解析を自分で処理する必要がありますが、try-catch を使用してエラーを自分で処理できるようになります。
let json;
try {
json = JSON.parse(json);
} catch (e) {
// Handle JSON error.
}