将多个HTTP拦截器分配给多个URL-Angular

时间:2019-07-15 08:10:12

标签: angular interceptor angular-http-interceptors

我已经阅读了有关Add multiple HTTP Interceptors to Angular Application的帖子,但我的案子更为具体。

我需要多个httpInterceptor来获取多个网址,例如

@NgModule({
  ...
  imports: [
    ... ,
    HttpClientModule
  ],
  providers: [
    ... ,
    {
      provide: HTTP_INTERCEPTORS,
      useClass: InterceptorOne,
      multi: true,
      url-pattren: api/* //-- Added for sake of example
    },
    {
      provide: HTTP_INTERCEPTORS,
      useClass: InterceptorTwo,
      multi: true,
      url-pattren: api2/* //-- Added for sake of example
    },
    {
      provide: HTTP_INTERCEPTORS,
      useClass: InterceptorThree,
      multi: true,
      url-pattren: https://3rdPartyApi/* //-- Added for sake of example
    }
  ],
  ...
})

所以我的意思是,并非所有请求/响应都是Content-Type: application/json,对于第三方API来说,我也不希望添加任何令牌或其他特定于应用程序的标头。

好吧,我认为我们可以通过创建一个HTTP_INTERCEPTOR来实现此功能,并在其中(通过使用if-else)根据URL添加自定义标头。但是,这会使代码有点脏而且难以维护。

Angular是否提供这种功能(基于URL的HTTP_INTERCEPTORS)?

0 个答案:

没有答案