You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NestJS中让全局与路由拦截器配合添加API版权信息?

问题原因

你的全局拦截器在处理响应时,直接返回了一个新对象{ tt: "All rights reserved" },完全覆盖了路由拦截器处理后的返回结果,所以Swagger只显示版权信息,而丢失了路由拦截器添加的geoCoder等数据。

解决方案

修改全局拦截器的map操作,保留原响应数据的同时添加版权字段:

@Injectable()
export class CopyrightsInterceptor implements NestInterceptor {
  intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
    return next.handle().pipe(
      map(value => {
        // 展开原返回值,再添加版权字段
        return {
          ...value,
          copyright: "All rights reserved"        
        }
      })
    );
  }
}
补充说明

修改后,全局拦截器会接收路由拦截器处理后的响应数据,将其展开并追加版权字段,最终返回的结果会包含路由拦截器添加的geoCoder、业务接口返回的数据,以及全局添加的版权信息。

建议把版权字段名改成语义化的copyright,比tt更清晰易懂。

内容的提问来源于stack exchange,提问作者Philippe Corrèges

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:22:25