0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Cloud FunctionsでレスポンスのHTTP status codeを任意に設定する方法

Posted at

結論

return {
            status: 500,
            error: 'error message',
            items: {返したいアイテム}
        }

経緯

Cloud Functionsの中でエラーが起きた際にどのようにレスポンスを返すかですが、try-catchせずに普通にエラーが起きるまたはthrow Errorすると500エラーがレスポンスとして返ってきます。
しかしHTTP status codeを変えてエラーを返したかったり、エラーの際にも正常なレスポンスの際と同じようなデータ形式でレスポンスを返したいというケースの際にどうすれば良いか困りました。

詳細

export const testFunction = functions.region("your-region").https.onCall(async (data, context) => {

Cloud Functionsの関数定義の中のreturnにstatusとして任意のHTTP status codeを返すことで設定することが出来ます。
他の値を設定しても、それに関しては普段のレスポンス通りdataキーの中に入れて返してくれるので

return {
            status: 500,
            error: 'error message',
            data: {
                items: {返したいアイテム}
            }
        }

の様にする必要はありません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?