我有Zuul Eureka Spring Boot服务endpointHateoas响应配置。当我通过Zuul网关访问服务时,响应中的资源链接是指向服务endpoint的直接链接,它们不应该是网关链接吗?我错过了什么?
网关endpoint:http://localhost:8762/catalog/products/10001直接服务endpoint:http://localhost:8100/products/10001
应用Zuul的属性
spring.application.name=zuul-server
eureka.client.service-url.default-zone=http://localhost:8761/eureka/
# Map paths to services
zuul.routes.catalog-service=/catalog/**
zuul.addProxyHeaders=true
网关终结点上的实际响应:http://localhost:8762/catalog/products/10001
{
"title" : "The Title",
"description" : "The Description",
"brand" : "SOME BRAND",
"price" : 100,
"color" : "Black",
"_links" : {
"self" : {
"href" : "http://localhost:8100/products/10001"
}
}
}
预期响应应在href中包含网关URL
{
"title" : "The Title",
"description" : "The Description",
"brand" : "SOME BRAND",
"price" : 100,
"color" : "Black",
"_links" : {
"self" : {
"href" : "http://localhost:8762/catalog/products/10001"
}
}
}
虽然@尼克希尔说他只是通过添加@Bean来修复,但在我的情况下恰恰相反:
我刚刚添加了转发头策略:FRAMEWORK
(目前,server.use转发头被弃用),它以这种方式为我工作。
谢谢@Zipster!
附加信息:
属性服务器。use forward Header
接受三个可能的值:
我测试了这三个选项以检查差异。
My Zuul gateway(端口8080)路由的配置如下:
zuul:
prefix: /api/v0
sensitive-headers: Cookie,Set-Cookie # Allow Authorization header forwarding
routes:
api-v0-questions:
path: /questions/**
service-id: api-v0-questions
strip-prefix: false
NATIVE-URL指向网关并去除/api/v0(顶部前缀):
"_links": {
"self": {
"href": "http://localhost:8080/questions/5f6fa0300ec87b34b70393ca"
}
框架-URL指向网关,不删除 /api/v0前缀:
"_links": {
"self": {
"href": "http://localhost:8080/api/v0/questions/5f6fa0300ec87b34b70393ca"
}
无-URL指向服务,就像根本不添加属性一样:
"_links": {
"self": {
"href": "http://localhost:8081/questions/5f6f96ba0ec87b34b70393b2"
}
我已经得到了这个问题,并通过github上的这篇帖子解决了它
要点是
Spring靴
@Bean
ForwardedHeaderFilter forwardedHeaderFilter() {
return new ForwardedHeaderFilter();
}
Spring靴
server.use-forward-headers=true
了解如何跨云文档使用链接资源,以提高各工作流程的工作效率。 随着设计界面的不断丰富,设计人员需要轻松协作来创建和维护一致的设计。借助链接资源,设计人员可以在云文档中创建一个基础的上下文库,包含一致扩展其设计所需的所有资源(颜色、字符样式和组件)。 借助最新版本的 Adobe XD,您不仅可以轻松共享和使用组件(以前称为符号),还可以轻松共享和使用颜色及字符样式,只需几个简单的步骤。如果您要与团队分
资源链接 论文 中本聪 / 比特币:一种点对点的电子现金系统; 闪电网络:The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments; 项目工具 blockchain.info:比特币信息统计网站; bitcoin.it:比特币 wiki,相关知识介绍; 以太坊项目:https://www.ethereum.org; 以太坊
这是更新IDE后出现的错误 Android资源链接失败i:\Android\AndriodStudioProjects\MedicalApp\App\Build\Intermediates\Incremental\MergedebugResources\Merged.dir\values-v28\values-v28.xml:7:错误:找不到资源Android:attr/DialogCornerR
我最近开始使用WebFlux,需要关于如何链接多个服务和聚合响应的建议。这4个服务及其响应POJO类似于以下示例: 以及4项服务的签名: 因此,需要为Flux中的每个响应1调用service2,为每个响应2调用service3。模型之间的关系是: 聚合的最终响应应类似于(JSON): 所以首先我需要调用Service1,然后为每个响应调用service2,然后为每个响应调用service3(由se
我正在使用Dropwizard 8.2.0构建REST服务。我有2个资源:FolderResource和FileResource: 我做错了什么?
官方网站 Docker 官方主页:https://www.docker.com Docker 官方博客:https://blog.docker.com/ Docker 官方文档:https://docs.docker.com/ Docker Hub:https://hub.docker.com Docker 的源代码仓库:https://github.com/moby/moby Docker 发布