我想为每个 HTTP 方法(GET、POST、PATCH...)提供一个单独的函数 - 对于相同的 URI 路径,例如:
// express app
...
getUser.get('/api/v1/user/:id', async (req, res) => {
...
updateUser.patch('/api/v1/user/:id', async (req, res) => {
...
exports.getUser = functions.https.onRequest(getUser);
exports.updateUser = functions.https.onRequest(updateUser);
但我不知道如何为这种情况指定托管重写配置。
是否可以将不同的 HTTP 方法路由到不同的函数(在 firebase.json 文件中)?
根据文档,Firebase Hosting 不会指定重写方法。您只能提供 URI 路径。
您可能应该在这里做的是创建一个包含单个端点的所有方法的单个快速应用程序,并通过单个命名函数导出它。 Express 会知道如何使用该方法。
您必须为一个端点的所有 get/post/put/等设置一个函数,然后检查它在该函数中。这很糟糕,因为现在谷歌分析无法区分。但你已经必须破解它才能从路径中获取任何 URL 参数。
我绝对会倾向于制作一个漂亮的 Restful api,并在代码中默默地受苦。
您可以使用 Express 方法,但它有其自身的各种缺点(例如更多的代码启动时间,我不确定,但它可能会花费更多的运行成本,然后您几乎无法获得谷歌分析,因为它将一切视为一个函数)