【问题标题】:Add dynamic headers to NestJS HTTPService向 NestJS HTTPService 添加动态标头
【发布时间】:2021-05-16 20:50:28
【问题描述】:

假设我们有一个 GraphQL NestJS 应用程序,它充当客户端和 REST API 服务器之间的代理。它有 3 层:

  1. 解析器
  2. 服务(有点业务逻辑和东西)
  3. 扩展 HTTPService 并增加了功能

我们希望将动态标头添加到 NestJS 向 REST API 服务器发出的请求,该服务器使用 axios。标头基于:

  1. 用户:我们可以借助解析器中的 User 装饰器读取用户并将其传递给服务,或者据我所知从 GraphQL 上下文中读取。
  2. 路由:不同的端点可能需要不同的标头。我认为我们可以指定由于服务中的特定路由而应添加的标头类型,但这看起来不那么可扩展...。或者我们可以存储一个当前路径的对象,我们向它发出请求。拦截传出请求并使用 RegExp 来确定请求被发送到哪个路径(即user/3 将转换为user/:id,我们可以添加适当的标头知道这一点)。
[
  {
    path: 'user/:id',
    ...
  },
  {
    path: 'user/:id/image',
    ...
  }
]

所以我的问题是我们如何根据路径(axios 请求的 URL)和当前用户将来自 NestJS 应用程序的传出请求的标头添加到某些端点。在拦截传出请求时将 url 与一些 RegExps 匹配是否昂贵?

【问题讨论】:

    标签: axios nestjs


    【解决方案1】:

    遇到了同样的问题,通过在 Nest GraphQL 中使用注入作用域来解决它

    https://docs.nestjs.com/fundamentals/injection-scopes#request-provider

    但是,在性能方面有一个警告。

    【讨论】:

      猜你喜欢
      • 2020-09-18
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 2023-02-13
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      相关资源
      最近更新 更多