作为API网关的Nextjs API路由

flvtvl50  于 2023-02-22  发布在  其他
关注(0)|答案(1)|浏览(188)

在我的微服务项目中,我需要一个新的层作为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网关?

zbdgwd5y

zbdgwd5y1#

我过去也曾出于类似的原因使用过这种方法。效果很好。
需要考虑的事项
您仍然需要在后端验证您的jwt令牌,以便通过
如果您正在使用OIDC oauth,请考虑使用nextJS auth0库之类的库来保护加密cookie中的jwt令牌
您可以使用类似express-http-proxy这样的工具来完成一些繁重的工作,将api请求从nextjs代理到后端
如果您正在使用像sentry这样的日志框架,请确保将frontend-〉nextjs server-〉backend作为任何分布式跟踪关联的一部分,以便您可以通过各层跟踪错误。
祝你好运

相关问题