[译]Ocelot - Headers Transformation
原文
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”, 值是“http://www.bbc.co.uk/, http://ocelot.com/”。这个值得意思是将 http://www.bbc.co.uk/ 替换成 http://ocelot.com/。相应的语法是:{find}, {replace}。
Pre Downstream Request
下面的位于一个ReRoute的配置会将 http://www.bbc.co.uk/ 替换成 http://ocelot.com/。 这个请求头在请求下游的时候会被修改,然后再发送至下游服务器。
"UpstreamHeaderTransform": {"Test": "http://www.bbc.co.uk/, http://ocelot.com/"
}
Post Downstream Request
下面的位于一个ReRoute的配置会将 http://www.bbc.co.uk/ 替换成 http://ocelot.com/。ocelot在收到下游服务器的响应的时候回将替换掉响应的http响应头。
"DownstreamHeaderTransform": {"Test": "http://www.bbc.co.uk/, http://ocelot.com/"
},
Placeholders
header transformation支持placeholder。
- {BaseUrl} - 这个使用的是Ocelot的base url。例如值为:http://localhost:5000
- {DownstreamBaseUrl} - 这个使用的是下游服务的base url。例如值为:http://localhost:5000。这个只有在`DownstreamHeaderTransform`里面才有效
- {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
[译]Ocelot - Headers Transformation相关推荐
- 定制Ocelot来满足需求
这篇文章,我们将从Ocelot的中间件源码分析,目前Ocelot已经实现那些功能,还有那些功能在我们实际项目中暂时还未实现,如果我们要使用这些功能,应该如何改造等方面来说明. 一.Ocelot源码解读 ...
- python获取网页数据对电脑性能_【Python】网页数据爬取实战
由于网页结构跟之前有变化,还不是很熟悉.代码待完善,问题记录: 腾讯新闻二级网页内容爬取有问题. 链家网站头文件没有用到. 爬取一条腾讯视频的header内容,存入txt.要求: 包含网页链接 包含t ...
- Ocelot(二)- 请求聚合与负载均衡
Ocelot(二)- 请求聚合与负载均衡 作者:markjiang7m2 原文地址:http://letyouknow.net/ocelot/ocelot-tutorial-2.html 源码地址:h ...
- [译]Vulkan教程(04)基础代码
[译]Vulkan教程(04)基础代码 General structure 通用结构 In the previous chapter you've created a Vulkan project w ...
- (补充)爬取大西洋月刊并调用彩云小译翻译 API 脚本
导读 上一篇文章写了如何爬取<The Atlantic>的新闻学习英语,这篇文章补充上一篇文章,在爬取文章段落时,同时调用翻译接口,到达如图所示的样子. 如图,翻译的非常不错,借助的是彩云 ...
- Zuul:智能路由和过滤(译)
2019独角兽企业重金招聘Python工程师标准>>> Zuul:智能路由和过滤(译) 博客分类: spring 微服务 Router and Filter: Zuul 路由是微服务 ...
- html 跨域_常见跨域解决方案以及Ocelot 跨域配置
常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题.今天来介绍一下我们在Ocelot网关配置的跨域 ...
- 基于Angular创建后台数据模拟(译)
我们已经习惯用AngularJS来创建前后端分离的应用,同时为了便于开发也会通过在前端代码库中使用mock数据来模拟服务端的接口.使用mock数据具有以下诸多的好处: * 如果你并不是接口api的开发 ...
- Ocelot API网关的实现剖析
转:https://www.cnblogs.com/shanyou/p/7787183.html 在微软Tech Summit 2017 大会上和大家分享了一门课程<.NET Core 在腾讯财 ...
最新文章
- 一篇文章搞懂人脸识别的十个概念
- 蚂蚁森林合种计划(2020.10.31,7天有效,每周更新)
- vs怎么编译php文件,vscode怎么初始编译
- css样式表和选择器
- Struts2标签 逻辑标签和UI标签
- [CareerCup] 1.6 Rotate Image 翻转图像
- 【sklearn学习】特征选择
- 服务器系统玩dnf,win7系统玩dnf提示正在连接服务器的解决方法
- 如何在 Asp.Net Core 中 管理敏感数据
- ajax处理返回的xml数据,使用AJAX调用WebService返回xml不返回json原因以及解决办法...
- java默认数组值_数组元素默认的初始值都是什么
- 中国最闷声发大财的城市,人均GDP超杭州
- 64位内核开发第8讲,文件操作.以及删除文件.
- ThinkPHP文件目录说明
- SSM框架搭建过程----学生学籍管理系统
- 安卓中的@Nullable和NonNull(NotNull) 等 注释
- Office 2003 打开RMS权限保护文档时出错
- java rector_Java IO的Reactor模式
- 天气暖和了,我却感冒了
- 解决时间控件input不能选择的问题
热门文章
- 下载文件扩展名php,[宜配屋]听图阁
- mysql5.7.20官方文档,MySql 5.7.20安装及data和my.ini文件的配置
- AT1 one-dimensional objects
- 卷积神经网络的重要知识点
- 扫地机自动回充揭秘之小米/iRobot/云鲸/360
- Datawhale 零基础入门CV赛事-Task3 字符识别模型
- 【最新】2021年自然语言处理 (NLP) 算法学习路线!
- 毕业设计项目,微博语料情感分析,文本分类
- php 取一条数据,php 读取txt 每次固定输出一条数据用什么方法实现?
- 模型房推荐_【自带水乐园】“巴洛克堡城”酒店,人均200+入住家庭房,乐享下午茶+自行车+游船+萌宠乐园!...