【问题标题】:Nextjs API routes as API GatewayNextjs API 路由作为 API 网关
【发布时间】:2023-02-19 06:24:46
【问题描述】:

在我的微服务项目中,我需要一个新层作为 API 网关来更改/添加/检查几乎所有从前端(客户端)到我的后端 API 的请求的一些数据。大多数情况下,我会用它来检查是否提供了有效的 JWT 或请求是否格式错误。

作为前端,我的项目中使用了 nextjs 服务器。 Nextjs 具有 API 路由的特性 (https://nextjs.org/docs/api-routes/introduction)。

我想知道如果您只想做一些基本的事情,例如检查请求是否具有有效的请求主体或是否提供了有效的 JWT,您是否需要专用的 API 网关。在这些检查之后,我会将请求转发或重定向到另一个微服务后端 API 端点。

如果我使用 Nextjs API 路由而不是专用的 API 网关:

  • 我不需要在我的项目中管理全新的微服务(例如使用 Nodejs/Express 构建的 API 网关)
  • 我不需要为同源策略烦恼

对我来说,这种方法看起来不那么复杂,而且由于我有 nextjs 服务器在运行,所以可以毫不费力地使用 API 路由。

我错过了什么吗?

使用 nextjs API 路由作为 API 网关是个好主意吗?还是应该继续使用专用的 API 网关?

【问题讨论】:

  • 这是 Next.js API 路由的一个完全有效的用例。如果它符合您的要求,我不明白为什么不。

标签: next.js api-gateway


【解决方案1】:

出于类似的原因,我过去曾使用过这种方法。很有魅力。

需要考虑的事情

您仍然需要在后端验证您的 jwt 令牌,以便通过代理它

如果您正在使用 OIDC oauth,请考虑使用像 nextJS auth0 库这样的库来保护您在加密 cookie 中的 jwt 令牌

您可以使用 express-http-proxy 之类的东西来围绕代理 api 请求从 nextjs 到您的后端做一些繁重的工作

如果您使用像 sentry 这样的日志记录框架,请确保将前端 -> nextjs 服务器 -> 后端作为任何分布式跟踪关联的一部分,以便您可以通过层跟踪错误。

祝你好运

【讨论】:

    猜你喜欢
    • 2021-08-24
    • 2023-01-24
    • 2021-05-04
    • 1970-01-01
    • 2022-12-05
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多