博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[译]Ocelot - Headers Transformation
阅读量:5117 次
发布时间:2019-06-13

本文共 1715 字,大约阅读时间需要 5 分钟。

Add to Request

为上游请求添加请求头,只需如下一样将下面的配置添加到一个ReRoute里:

"UpstreamHeaderTransform": {    "Uncle": "Bob"}

上面的例子中添加了一个键为Uncle,值为Bob的请求头。

支持Placeholders。

Add to Response

还可以为下游服务添加响应头, 如下一样将下面的配置添加到一个ReRoute里:

"DownstreamHeaderTransform": {    "Uncle": "Bob"},

如果你想返回Butterfly APM trace id,可以如下配置:

"DownstreamHeaderTransform": {    "AnyKey": "{TraceId}"},

Find and Replace

为了transform一个http头,我们需要指定一个http头的键,然后入下一样设置transform:

"Test": "http://www.bbc.co.uk/, http://ocelot.com/"

键是“Test”, 值是“, ”。这个值得意思是将 替换成 :{find}, {replace}。

Pre Downstream Request

下面的位于一个ReRoute的配置会将 替换成 。 这个请求头在请求下游的时候会被修改,然后再发送至下游服务器。

"UpstreamHeaderTransform": {    "Test": "http://www.bbc.co.uk/, http://ocelot.com/"}

Post Downstream Request

下面的位于一个ReRoute的配置会将 替换成 。

"DownstreamHeaderTransform": {    "Test": "http://www.bbc.co.uk/, http://ocelot.com/"},

Placeholders

header transformation支持placeholder。

  • {BaseUrl} - 这个使用的是Ocelot的base url。例如值为:
  • {DownstreamBaseUrl} - 这个使用的是下游服务的base url。例如值为:
  • {TraceId} - 这个使用的是 Butterfly APM Trace Id。这个只有在DownstreamHeaderTransform里面才有效

Handling 302 Redirects

Ocelot默认是自动根据响应头里面的Location自动跳转的。如果你想将响应头里面的location返回给客户,可以如下一样配置。

"DownstreamHeaderTransform": {    "Location": "http://www.bbc.co.uk/, http://ocelot.com/"}, "HttpHandlerOptions": {    "AllowAutoRedirect": false,},

还可以使用BaseUrl placeholder。

"DownstreamHeaderTransform": {    "Location": "http://localhost:6773, {BaseUrl}"}, "HttpHandlerOptions": {    "AllowAutoRedirect": false,},

如果使用了负载均衡,下游的base url可能会有多个,可能会导致上面的配置不能正常工作。这种情况下可以如下一样配置。

"DownstreamHeaderTransform": {    "Location": "{DownstreamBaseUrl}, {BaseUrl}"}, "HttpHandlerOptions": {    "AllowAutoRedirect": false,},

转载于:https://www.cnblogs.com/irocker/p/ocelot-headerstransformation.html

你可能感兴趣的文章
android px dx 转换
查看>>
Grevl旅游注册的初步界面,以源代码和运行图片展示
查看>>
大学英语四听说文本
查看>>
Codeforces Round #344 (Div. 2) A. Interview 水题
查看>>
python 爬虫 处理超级课程表传输的数据
查看>>
Linux netlink之添加一个简单协议
查看>>
20165322 实验三 敏捷开发与XP实践
查看>>
组合数学公式
查看>>
fcntl函数用法——操纵文件描述符状态
查看>>
php-超全局变量
查看>>
C++ queue
查看>>
还是畅通工程
查看>>
Alpha阶段敏捷冲刺(五)
查看>>
MySql5.7忘记root密码重置|开机启动|访问权限
查看>>
【转载】数组、单链表和双链表介绍 以及 双向链表的C/C++/Java实现
查看>>
mac Python 安装相关库
查看>>
8. Actor-Critic、DDPG、A3C
查看>>
hbase shell command
查看>>
DS18B20 Datasheet时序完全解读
查看>>
JavaScript学习笔记-正则表达式(RegExp对象)
查看>>