【问题标题】:Are only POST requests available with Google Cloud Functions HTTP Triggers只有 POST 请求可用于 Google Cloud Functions HTTP 触发器
【发布时间】:2023-03-08 19:00:01
【问题描述】:

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

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

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

POST /user
GET  /user/:id
PUT  /user/:id
DEL  /user/:id

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

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

【问题讨论】:

标签: google-cloud-platform google-cloud-functions


【解决方案1】:

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;
}

至于您问题的路由/映射部分,目前作为 GCF 的一部分,路由没有任何额外内容。一如既往,请继续关注我们不断开发新功能!

【讨论】:

  • 检查 webfunc (github.com/nicolasdao/webfunc)。它确实支持 Google Cloud Functions 的路由。
  • 但是如果你创建了一个应用程序,这是否意味着功能不再独立扩展?我弄错了吗?我想要一个谷歌云函数来处理对它的所有 REST api 调用,但我希望有一种很好的方式来做这件事——比如在 express 中
猜你喜欢
  • 2018-02-17
  • 2017-10-31
  • 2021-07-15
  • 2021-11-28
  • 2020-08-15
  • 2017-11-26
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
相关资源
最近更新 更多