问题标签 [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.
.net-core - Ocelot路由配置路径冲突
您将如何根据两组相似的路由设置重新路由到不同的机器。请指教。
问题/问题:冲突的情况在/customers/1
&之间/customers/1/products
在每个人要去不同的机器之间。
- 机器名称:customer
- 机器名称:customerproduct
豹猫.json
.net-core - 在 Ocelot 的 `DelegatingHandler` 中访问 `DownstreamReRoute`
是否可以在 Ocelot中访问DownstreamReRoute
对象?DelegatingHandler
我有一个DelegatingHandler
实例,我想根据正在调用的下游重新路由稍微改变它的行为。我可以根据HttpRequestMessage
传递给SendAsync()
方法的 URL 来执行此操作,但如果可能的话,我更愿意通过下游重新路由键来执行此操作。
我查看了添加的依赖项OcelotBuilder
,看看是否可以注入一些东西然后查询当前的重新路由,但这似乎不可能。
例如,如果我有一个DelegatingHandler
和配置(为简洁起见删除了必填字段)
是否有可能知道我是从 delegatingHandler调用FooKey
还是重新路由?BarKey
c# - ocelot 在不重启应用的情况下更改配置
我正在尝试在不重新启动应用程序的情况下更改 ocelot 配置,并且我不想使用 Consul。试图寻找简单的解决方案。我正在尝试什么。
注册的配置文件为reloadOnChange:true
并将配置添加为单例
还编写了服务,它使我能够使用服务更改此单例配置。
怎么了?为什么 ocelot 不刷新它的内部配置?
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 。
.net-core - Ocelot 使用“DangerousAcceptAnyServerCertificateValidator”禁用 SSL 验证
添加自签名证书后出现问题,请求在网关处被阻止并显示消息
无法建立 SSL 连接,请参阅内部异常。---> System.Security.Authentication.AuthenticationException:根据验证程序,远程证书无效。
然后我发现可以通过在配置中添加它来禁用验证
但仍然有同样的问题和同样的错误。
c# - API 网关聚合 POST (Ocelot)
我正在使用 ocelot 作为 API 网关,并且我正在尝试从客户端发送 HTTP POST 请求,该请求将被发送到多个服务,并且它们的响应应该被聚合并返回给客户端。在 Ocelot 的文档中已经提到它的请求聚合只支持 GET,所以我使用HttpClientFactory异步发送多个请求并手动连接它们的 JSON 响应。有没有更好的方法来实现这一目标?
c# - 使用 Ocelot 的服务发现 ASP.Net Core
我的想法可能是错误的,但这里是计划。
我有一个有 2 项服务的应用程序,以及一个使用这些服务的客户端。因为我希望它们是微服务,所以我计划构建一个 API 网关,使其只有一个访问点并重定向请求。我找到了一些用于构建它的文档,我偶然发现了 Ocelot 来完成这项工作,它似乎完全回答了我的想法。
但是这里的问题是,如果我想运行我的服务的多个实例,我需要一个服务发现,Ocelot 可以用 Consul 做,但是它需要在服务中在他的配置中注册服务发现提供者。我想做的是动态发现服务,而无需在服务中配置服务发现提供者。可能吗 ?
另外,如果我想运行另一个网关实例,服务将不会在这个新实例上注册。
任何提示或更好的解决方案?
azure - IDX10214:观众验证失败。观众:“[PII 被隐藏]”
我有使用 azureb2c 进行身份验证的网络应用程序。有 3 个 API,由 Web 应用程序通过 Ocelot 网关使用 HttpClient 调用。身份验证后,当通过网关向 API 发出请求时,会向特定 API 发出请求并提供所需的响应。但是,在阅读响应时,下面一行会抛出异常
IDX10214:观众验证失败。观众:“[PII 被隐藏]”。不匹配:validationParameters.ValidAudience: '[PII is hidden]' 或 validationParameters.ValidAudiences: '[PII is hidden]'。
我已经使用邮递员单独测试了 API,它可以工作。
我为每个客户端配置了类似于下面的代码
asp.net-core - Ocelot API Gateway 可选参数
有没有办法告诉 Ocelot 一个参数是可选的?
假设下面的查询参数是可选的:
如果我向我发送请求,/SearchAPI/?query=
我会得到一个404
响应。我需要复制Upstream
不使用参数来修复。还有其他方法可以解决这个问题吗?
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。