1

我希望将一个 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

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

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

4

1 回答 1

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

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

于 2016-12-16T21:58:13.930 回答