FFFT

主にwebプロダクト開発に関連する話をつらつらと

Cloud Functionsでhttpメソッドのチェックとheaderのチェック

Cloud Functionsで関数を作成するとデフォルトで下記の関数コードが生成されます。

exports.helloWorld = (req, res) => {
  let message = req.query.message || req.body.message || 'Hello World!';
  res.status(200).send(message);
};

引数で渡されるreqでhttpメソッドのチェックができます。

exports.helloWorld = (req, res) => {
  if (req.method !== 'POST') {
    res.status(404).end();
    return;
  }
  let message = req.query.message || req.body.message || 'Hello World!';
  res.status(200).send(message);
};

headerはこんな感じで取得できます。
例はcontent-type。

exports.helloWorld = (req, res) => {
  if (req.method !== 'POST') {
    res.status(404).end();
    return;
  }
  if (req.get('content-type') !== 'application/json') {
    res.status(400).end();
    return;
  }
  let message = req.query.message || req.body.message || 'Hello World!';
  res.status(200).send(message);
};