问题标签 [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 回答
5833 浏览

c# - 如何在 Ocelot 中实现 cors 标头

我在我的新项目中实现了 ocelot,我使用 ocelot 一次性创建了我的服务的集成,但是当我尝试在我的 api 网关中发布、放置、路径或删除资源时,浏览器会向我显示消息

无法加载http://localhost:8080/api/prospects:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“ http://localhost:8888 ”。响应具有 HTTP 状态代码 404。

我尝试在安装和实现包 Microsoft.AspNetCore.Cors 的网关中配置 cors

0 投票
0 回答
1198 浏览

docker - 身份服务器 4 和 Ocelot 与 Docker 的集成

我正在尝试将 Ocelot API 网关与 ID4 集成。根据 Ocelot文档,我们可以使用外部 id 服务器https://whereyouridentityserverlives.com验证令牌,现在,我将 ID 服务器和 GateWay 集成到同一个 docker compose 中,

在我的网关中,我正在配置

一切正常,现在在令牌验证时出现错误,没有这样的设备或地址

很可能,网关服务器无法连接 id4,因此无法获取发现文档。

日志文件的相关部分

我错过了什么?

0 投票
2 回答
7258 浏览

api - 使用 OCELOT 的 API 网关 - 错误 - 无法启动 Ocelot

我是 API 网关的新手,请按照以下链接开始。

https://www.c-sharpcorner.com/article/building-api-gateway-using-ocelot-in-asp-net-core/

当我尝试运行应用程序时,它会在以下代码行中的 Startup.cs 文件中引发错误。

启动.cs

错误:

无法启动Ocelot,错误为:不使用服务发现时DownstreamHostAndPorts必须设置且不为空否则Ocelot找不到你的服务!,不使用服务发现时DownstreamHostAndPorts必须设置且不为空否则Ocelot找不到你的服务!,不使用时使用服务发现 DownstreamHostAndPorts 必须设置且不能为空,否则 Ocelot 找不到你的服务!

配置.json

0 投票
1 回答
720 浏览

azure - 带有 Ocelot API 网关 404 错误的 Azure 服务结构

我创建了具有多个无状态和有状态服务的 Azure 服务结构应用程序。我所有的有状态服务都可以通过 Web Api 无状态服务访问。现在我已将 Ocelot API 网关添加到另一个无状态 Web api 服务,我只想从该网关访问我的所有服务。现在,当我尝试从我的 API 网关服务访问服务时,它给了我 404。

豹猫配置

我在这里缺少什么?

0 投票
1 回答
714 浏览

c# - Ocelot API Gateway - 分配微服务的最佳 url 模板?

我们公司有许多微服务。我们还使用 Api Gateway 模式来路由这些微服务,实际上我们为此使用了Ocelot。应用于这些微服务的最佳 URL 格式是什么?

重要的是我们为我们的服务使用了 Rest 架构

例如,我现在有这些模板:

api.example.com/microservice1/{控制器}

example.com/api/microservice1/{controller}

你有什么意见?

0 投票
1 回答
6623 浏览

c# - API Gateway Ocelot 不重定向

使用 Ocelot 构建微服务架构 我开始在单独的解决方案中构建测试服务。一切正常,我可以得到对https://localhost:5101/service/stats/collected.

然后在另一个解决方案中,我正在制作一个全新的 webapi 项目。然后我跟着Ocelot官网的入门

配置 .json 文件以将其用作 GW 如果我尝试点击https://localhost:5001/api/stats/collected,我从项目中获得 500,但我不知道为什么?

这里是 APIGW 的主要文件:

豹猫.json

程序.cs

启动.cs

更新:

我发现通过options在方法中注释来禁用每个项目的 SSLUseKestrel会使我的 GW 工作。如何设置它以在我的 GW 和服务之间建立安全连接?本地主机和产品?

0 投票
1 回答
61 浏览

docker - API Gateway w/WebAPI 端点在同一用户桥接网络上。WebAPI 需要 SSL?

如果我在 docker 容器中有一个 api 网关,它与同一用户桥接网络上的第二个 webapi docker 容器通信,是否有任何理由在 api 网关和 docker 容器之间配置 ssl?

在 webapi 和 api 网关之间只使用端口 80 是否 100% 安全?

客户端通过 ssl 连接到 api 网关,那么出于某种原因,您是否必须一直继续使用 ssl 到 webapi?

假设我不需要 SSL:如果从 webapi 我想从 OAUTH2 访问令牌中读取一些自定义声明,这会改变事情吗?

我问的原因是因为我已经设置了一个 Ocelot api 网关和 webapi,它们通过 http 进行良好通信,但我无法让它们通过 webapi 的 ssl 端点进行通信,但如果它没有,我不会担心没关系。

0 投票
1 回答
849 浏览

asp.net-core - 我应该向 kubernetes 集群上的 consul 注册 pod 或 kubernete 服务吗

我已经在kubernetes集群上部署了ocelot和consul。Ocelot 充当 api 网关,将请求分发给内部服务。而 consul 负责服务发现和健康检查。(顺便说一句,我按照 consul 的官方文档将 consul 部署在 kubernetes 集群上)。

而我的服务(即asp.net core webapi)也部署到了kubernetes集群,有3个副本。我没有创建 kubernete 服务对象,因为这些 pod 只会被同一集群中的 ocelot 消耗。

架构如下所示:

此外,IMO,consul 可以在 pod 死亡时取消注册 pod(webapi)。所以我认为不需要创建 kubernete 服务对象

现在我的问题是:在 pod 启动时将每个 pod(webapi) 注册到 consul 是否正确?或者我应该在这些 pod (webapi) 前面创建一个 kubernete 服务对象并将服务对象注册到领事?

0 投票
1 回答
3521 浏览

asp.net-core - 是否可以为 SwaggerUI 动态添加 SwaggerEndpoints?

我们正在 .NET Core 中构建面向服务的架构。我们决定使用 Ocelot 作为我们的 API 网关。我已将 Ocelot 与 Consul 集成以进行服务发现。现在我正在尝试为所有下游服务创建一个统一的 Swagger UI。

在服务发现之前,我们有这样的 Swagger 设置:

在 Swagger UI 上,这提供了“选择规范”下拉菜单。开发人员喜欢这个功能,我们希望保留它。但是,既然我们已经删除了有利于服务发现的手动配置,我们还希望动态更新这些端点。

使用当前可用的 Swagger 解决方案,这可能吗?我还没有看到与服务发现或能够动态配置 UI 相关的任何内容。想法和建议?

更新

我想出了一个方法来做到这一点。这有点hack-ish,我希望有一种方法可以做到这一点,而不是那么笨拙。

0 投票
1 回答
2339 浏览

c# - 使用 Ocelot (7.0.4) 重新路由错误 asp.net Core

在这里,我试图将我的 UpstreamPathTemplate 从查询字符串重新路由到 DownstreamPathTemplate,

这是我发送到我的帐户管理服务的查询字符串,以便使用 ocelot 重新路由到我的代理服务。

这是我在代理服务中用于接收重新路由路径的控制器方法

但它不起作用。在我的 OUTPUT 窗口中显示消息:无法找到路径的下游路由:/api/account/user/list/GetPagedAgents,动词:GET

这意味着这里它把我的 UpstreamPath 作为

这里缺少参数。

任何帮助将不胜感激。谢谢