是否只有 POST 请求可用于 Google Cloud Functions HTTP 触发器

Ste*_*ley 1 google-cloud-platform google-cloud-functions

我希望将 rest API 部署到 Google Cloud Functions,但是部署文档似乎表明只能使用 POST 请求:

对函数端点(部署输出的 web_trigger.url 参数)的每个 HTTP POST 请求都将触发函数执行。函数执行的结果将在响应正文中返回。- https://cloud.google.com/functions/docs/deploying/

理想情况下,我希望将路径与通配符和不同的 HTTP 方法相关联,例如

POST /user
GET  /user/:id
PUT  /user/:id
DEL  /user/:id
Run Code Online (Sandbox Code Playgroud)

使用通配符值填充函数上下文中的一些 params 对象,如 Rails、Hapijs 等。

想知道 Cloud Functions 是否可以实现上述功能,如果不能,将来是否会实现?

Bre*_*wen 5

POST-only 是文档中的一个错字(糟糕!);我会更新的。Google Cloud Function HTTP 函数支持 GET、PUT、POST、DELETE 和 OPTIONS。

(请参阅https://cloud.google.com/functions/docs/writing/http 上的 HTTP 函数文档)

如果函数需要处理多个 HTTP 方法(GET、PUT、POST 等),您可以简单地检查请求的方法属性。

您可以通过 req.method 检查 HTTP 方法,即

switch (req.method) {
  case 'GET':
    handleGET(req, res);
    break;
  case 'PUT':
    handlePUT(req, res);
    break;
  default:
    res.status(500).send({ error: 'Something blew up!' });
    break;
}
Run Code Online (Sandbox Code Playgroud)

至于您问题的路由/映射部分,目前作为 GCF 的一部分,路由没有其他任何内容。与往常一样,请继续关注我们,因为我们一直在开发新功能!