如何在每个HTTP api调用中设置不同类型的标头?

洛基

我们在不同的机器上运行不同类型的微服务,我想连接到它们。但是由于所有微服务都有自己的标头,因此需要在Angular应用程序中相应地传递它们。

我编写了一个拦截器来拦截并附加标头,然后将请求发送到服务器,如下所示

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent  } from '@angular/common/http';
import { Observable } from 'rxjs';

export class JwtInterceptor implements HttpInterceptor {

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
            req = req.clone({
                setHeaders: {
                    Authorization: `Bearer ${----token-----}`,
                    'api-version': '1.0.0'
                }
            });

            return next.handle(req);
    }

}

但我想根据我想连接的微服务的类型设置相应的标头。

解决这个问题的最佳方法是什么?

杰弗里·豪瑟

在非常普通的级别上,我们对@riorudo在他的评论中建议的内容进行了处理。

我们在概念上设置了一个配置对象数组,如下所示:

[
  {  method: 'GET', urlToIntercept: '/something'},
  {  method: 'POST', urlToIntercept: '/somethingElse' }
  // etc.. etc...
]

您可以将此代码硬编码为拦截器中的配置,也可以将其作为服务传递。

拦截器代码可以执行以下操作:

if (interceptableMethodList.find(element => request.urlToIntercept.includes(element.url) && request.method.toLowerCase() === element.method)) {
   // add header
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在API调用中设置标头值

如何在WordPress Rest API调用中设置请求标头

如何在Apache JClouds中设置HTTP标头?

如何在 Guzzle 中设置 Authorization HTTP 标头?

如何在HTTP响应中设置标头?

如何在vue-cli中设置HTTP标头?

如何在magento中设置http标头

为什么HTTP / 2为状态码(例如404)显示不同类型的标头

在Web API中设置“内容处置” HTTP标头

如何在每个堆栈的反应导航中设置标头“汉堡”而不重复

如何将标头放入api调用中?

如何在Notepad ++中为不同类型的文件设置不同的样式?

如何在boost-beast http请求中设置http标头?

如何在Apache Jmeter中为组线程请求设置不同的标头?

Spring Integration Rest Service调用中如何在Http.outboundGateway中添加cutom标头?

如何在azure逻辑应用程序http操作中设置标头或身份验证

如何在RESTEasy客户端框架中设置HTTP标头?

如何在Angular 2中正确设置Http请求标头

使用BridgeTalk HttpConnection对象时,如何在Adobe Illustrator ExtendScript中设置HTTP标头?

如何在node-http-proxy中设置Access-Control-Allow-Headers标头

如何在没有页面终止的情况下在 PHP 中设置标头 HTTP 代码?

如何在OctoberCMS中设置Cache-Control HTTP标头?

如何在Google Go中为QuickBooks API调用正确添加OAuth标头

在HTTP getUrl中设置标头

在 Http 请求中设置标头

无法在Express中设置HTTP标头

如何在golang中从http请求中读取标头?

在 Web 视图 iOS + Swift 3 中为所有后续 url 调用设置 Http 标头

在TYPO3 9.5中设置404页面的内容类型HTTP标头