问题标签 [ocelot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3140 浏览

.net-core - Ocelot路由配置路径冲突

您将如何根据两组相似的路由设置重新路由到不同的机器。请指教。

问题/问题:冲突的情况在/customers/1&之间/customers/1/products在每个人要去不同的机器之间。

- 机器名称:customer

- 机器名称:customerproduct

豹猫.json

0 投票
2 回答
1360 浏览

.net-core - 在 Ocelot 的 `DelegatingHandler` 中访问 `DownstreamReRoute`

是否可以在 Ocelot中访问DownstreamReRoute对象?DelegatingHandler我有一个DelegatingHandler实例,我想根据正在调用的下游重新路由稍微改变它的行为。我可以根据HttpRequestMessage传递给SendAsync()方法的 URL 来执行此操作,但如果可能的话,我更愿意通过下游重新路由键来执行此操作。

我查看了添加的依赖项OcelotBuilder,看看是否可以注入一些东西然后查询当前的重新路由,但这似乎不可能。

例如,如果我有一个DelegatingHandler

和配置(为简洁起见删除了必填字段)

是否有可能知道我是从 delegatingHandler调用FooKey还是重新路由?BarKey

0 投票
1 回答
1077 浏览

c# - ocelot 在不重启应用的情况下更改配置

我正在尝试在不重新启动应用程序的情况下更改 ocelot 配置,并且我不想使用 Consul。试图寻找简单的解决方案。我正在尝试什么。

注册的配置文件为reloadOnChange:true

并将配置添加为单例

还编写了服务,它使我能够使用服务更改此单例配置。

怎么了?为什么 ocelot 不刷新它的内部配置?

0 投票
1 回答
2350 浏览

c# - .net core 2.1 ocelot 网关返回 404

我正在尝试在我的应用程序中实现 ocelot 网关,但它总是在我在 ocelot.json 中配置的所有路径上返回 404。

每当我使用简单调用或聚合调用对 Postman 进行 GET 时,它总是返回 404 并且程序继续运行,它不会崩溃。

豹猫.json:

程序.cs:

启动.cs:

我正在使用 .NET Core 2.1 和 Ocelot NuGet 包版本 13.5.1 。

0 投票
3 回答
2277 浏览

.net-core - Ocelot 使用“DangerousAcceptAnyServerCertificateValidator”禁用 SSL 验证

添加自签名证书后出现问题,请求在网关处被阻止并显示消息

无法建立 SSL 连接,请参阅内部异常。---> System.Security.Authentication.AuthenticationException:根据验证程序,远程证书无效。

然后我发现可以通过在配置中添加它来禁用验证

但仍然有同样的问题和同样的错误。

0 投票
0 回答
1242 浏览

c# - API 网关聚合 POST (Ocelot)

我正在使用 ocelot 作为 API 网关,并且我正在尝试从客户端发送 HTTP POST 请求,该请求将被发送到多个服务,并且它们的响应应该被聚合并返回给客户端。在 Ocelot 的文档中已经提到它的请求聚合只支持 GET,所以我使用HttpClientFactory异步发送多个请求并手动连接它们的 JSON 响应。有没有更好的方法来实现这一目标?

API Gateway POST 响应聚合

0 投票
0 回答
517 浏览

c# - 使用 Ocelot 的服务发现 ASP.Net Core

我的想法可能是错误的,但这里是计划。

我有一个有 2 项服务的应用程序,以及一个使用这些服务的客户端。因为我希望它们是微服务,所以我计划构建一个 API 网关,使其只有一个访问点并重定向请求。我找到了一些用于构建它的文档,我偶然发现了 Ocelot 来完成这项工作,它似乎完全回答了我的想法。

但是这里的问题是,如果我想运行我的服务的多个实例,我需要一个服务发现,Ocelot 可以用 Consul 做,但是它需要在服务中在他的配置中注册服务发现提供者。我想做的是动态发现服务,而无需在服务中配置服务发现提供者。可能吗 ?

另外,如果我想运行另一个网关实例,服务将不会在这个新实例上注册。

任何提示或更好的解决方案?

0 投票
1 回答
3180 浏览

azure - IDX10214:观众验证失败。观众:“[PII 被隐藏]”

我有使用 azureb2c 进行身份验证的网络应用程序。有 3 个 API,由 Web 应用程序通过 Ocelot 网关使用 HttpClient 调用。身份验证后,当通过网关向 API 发出请求时,会向特定 API 发出请求并提供所需的响应。但是,在阅读响应时,下面一行会抛出异常

IDX10214:观众验证失败。观众:“[PII 被隐藏]”。不匹配:validationParameters.ValidAudience: '[PII is hidden]' 或 validationParameters.ValidAudiences: '[PII is hidden]'。

我已经使用邮递员单独测试了 API,它可以工作。

我为每个客户端配置了类似于下面的代码

0 投票
1 回答
2394 浏览

asp.net-core - Ocelot API Gateway 可选参数

有没有办法告诉 Ocelot 一个参数是可选的?

假设下面的查询参数是可选的:

如果我向我发送请求,/SearchAPI/?query=我会得到一个404响应。我需要复制Upstream不使用参数来修复。还有其他方法可以解决这个问题吗?

0 投票
1 回答
784 浏览

c# - “IServiceCollection”不包含“AddOcelot”的任何定义

我在使用 .NET Core 3.0 实现 Ocelot 时遇到问题,当我尝试在我的程序类中添加 ocelot 时,因为文档指定应该完成 vs2019 向我显示此错误:

“IServiceCollection”不包含“AddOcelot”的定义或接受“IServiceCollection”类型的第一个参数的可访问扩展方法“AddOcelot”(是否有任何指令使用或缺少程序集引用?),

UseOcelot()方法也重复此错误

我可以做些什么来解决这个错误?,我已经安装了 Nuget 包 Ocelot 版本 13.8.0 和 Ocelot.Provider.Consul 版本 13.8.0。