【发布时间】:2020-11-04 15:26:33
【问题描述】:
我正在努力通过 Firebase Cloud Functions 创建一个无服务器 REST API,这似乎运行良好,但 examples 和 documentation 似乎都使用了一个整体解决方案,因为它们使用 Express 框架并基本上映射根向 Express 应用发出 http 请求,然后让它处理路由。我知道这是因为 Firebase 托管平台不具备处理 http 动词的能力。
我的期望是,无服务器/FaaS 方法将为每个端点提供一个功能,以便将来轻松更新,因为无需更新整个应用程序,只需更新单个服务 - 即更实用的方法。
我在这里缺少什么?为什么要使用单个函数来包含快速应用程序?这不会破坏无服务器/云功能方法的目的吗?还有其他方法吗?
【问题讨论】:
-
你当然可以为每个端点做一个函数,不需要express。我认为这从文档中很清楚。您只需要使用类似 Express 的请求和响应对象,无需创建 express 应用程序。 firebase.google.com/docs/functions/http-events
-
感谢@DougStevenson——也许是我的错误——我读到“HTTP 函数的事件处理程序侦听 onRequest() 事件,它支持由 Express Web 框架管理的路由器和应用程序。”表示它仅支持 Express 管理的路由器和应用程序。是否有任何示例应用程序采用了每个端点的功能方法(即没有 Express)?
-
我链接到的文档显示了该示例。你只需在onRequest中填写代码即可。无需路由任何东西。
-
好的,我会做更多的挖掘 - 无法立即看到如何区分同一个 url 上的 POST 和 GET(例如),但我会假设它在某个地方 :-)
-
我现在看到它在 req.method 中,所以应该可以使用它 - 再次感谢。
标签: node.js firebase rest express google-cloud-functions