Ocelot(八)- Ocelot不支持的几个方面
不支持
Ocelot不支持的几个方面
- Chunked Encoding - Ocelot将始终获取正文大小并返回Content-Length标头。很抱歉,如果这对您的用例不起作用!
- 转发主机标头 - 您发送给Ocelot的主机标头不会转发到下游服务。显然这会打破一切:(
- Swagger - 我已经多次在Ocelot ocelot.json中建造swagger.json,但它不符合我对Ocelot的愿景。如果您希望在Ocelot中使用Swagger,那么您必须使用自己的swagger.json并在Startup.cs或Program.cs中执行以下操作。下面的代码示例注册了一个加载手卷swagger.json并在/swagger/v1/swagger.json上返回的中间件。然后它从Swashbuckle.AspNetCore注册SwaggerUI中间件
app.Map("/swagger/v1/swagger.json", b =>
{
b.Run(async x => {
var json = File.ReadAllText("swagger.json");
await x.Response.WriteAsync(json);
});
});
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Ocelot");
});
app.UseOcelot().Wait();
我不认为Swagger有意义的主要原因是我们已经在ocelot.json中手动定义了我们的定义。如果我们希望针对Ocelot开发的人能够看到可用的路由,那么与他们共享ocelot.json(这应该像授予对repo等的访问权限一样简单)或者使用Ocelot管理API以便他们可以查询Ocelot用于配置。
除此之外,许多人还将Ocelot配置为将所有流量(例如/ products / {everything}代理到他们的产品服务中,如果解析了这个并将其转换为Swagger路径,则不会描述实际可用的流量。此外,Ocelot没有下游服务可以返回的模型的概念,并且链接到上述问题,相同的端点可以返回多个模型。Ocelot不知道在POST,PUT等中可能会使用哪些模型,所以这一切都有点乱,最后Swashbuckle包如果在运行时发生变化则不会重新加载swagger.json。Ocelot的配置可以在运行时更改,因此Swagger和Ocelot信息不匹配。除非我推出自己的Swagger实现。
如果用户希望能够轻松地对Ocelot API进行测试,那么我建议使用Postman作为一种简单的方法来执行此操作。甚至可以编写一些将ocelot.json映射到邮差json规范的东西。但是我不打算这样做。
Ocelot(八)- Ocelot不支持的几个方面的更多相关文章
- ubuntu-docker入门到放弃(八)创建支持SSH服务的镜像
我们知道进入docker容器可以使用attach.exec等命令来操作和管理,但是如果需要远程登录并管理容器,就需要ssh服务的支持了. 1.基于commit命令创建 docker提供了commit命 ...
- Ocelot中文文档-不支持
Ocelot不支持一下几点... 分块编码 - Ocelot将始终获取body大小并返回Content-Length头. 如果这不适合你的场景,只能表示抱歉! 转发host头 - 您发给Ocelot的 ...
- Asp.Net Core API网关Ocelot
首先,让我们简单了解下什么是API网关? API网关是一个服务器,是系统的唯一入口.从面向对象设计的角度看,它与外观模式类似.API网关封装了系统内部架构,为每个客户端提供一个定制的API.它可能还具 ...
- Ocelot中文文档-路由
Ocelot的主要功能是接管进入的http请求并把它们转发给下游服务.目前是以另一个http请求的形式(将来可能是任何传输机制). Ocelot将路由一个请求到另一个请求描述为ReRoute.为了在O ...
- eShopOnContainers 知多少[9]:Ocelot gateways
引言 客户端与微服务的通信问题永远是一个绕不开的问题,对于小型微服务应用,客户端与微服务可以使用直连的方式进行通信,但对于对于大型的微服务应用我们将不得不面对以下问题: 如何降低客户端到后台的请求数量 ...
- 微服务(入门三):netcore ocelot api网关结合consul服务发现
简介 api网关是提供给外部调用的统一入口,类似于dns,所有的请求统一先到api网关,由api网关进行指定内网链接. ocelot是基于netcore开发的开源API网关项目,功能强大,使用方便,它 ...
- AspNetCore中使用Ocelot之 IdentityServer4(1)
AspNetCore中使用Ocelot之 IdentityServer4(1) 前言: OceLot网关是基于AspNetCore 产生的可扩展的高性能的企业级Api网关,目前已经基于2.0 升级版本 ...
- [译]Ocelot - Service Discovery
原文 你可以指定一个service discovery provider,ocelot将使用它来找下游的host和port. Consul 下面的配置要放在GlobalConfiguration中.如 ...
- Net Core API网关Ocelot
Ocelot在github的地址 https://github.com/TomPallister/Ocelot , 非常给力的是在课程当天完成了.NET Core 2.0的升级,升级过程请看https ...
- Ocelot简易教程(四)之请求聚合以及服务发现
上篇文章给大家讲解了Ocelot的一些特性并对路由进行了详细的介绍,今天呢就大家一起来学习下Ocelot的请求聚合以及服务发现功能.希望能对大家有所帮助. 作者:依乐祝 原文地址:https://ww ...
随机推荐
- 洛谷——P1262 间谍网络
P1262 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意 ...
- 实现浏览器兼容的innerText
今天学习到了FF不支持innerText,而IE.chrome.Safari.opera均支持innerText. 为了各个浏览器能兼容innerText,必须对js做一次封装. 为啥能实现兼容呢?原 ...
- [vijos1891]学姐的逛街计划
学姐的逛街计划 描述 doc 最近太忙了, 每天都有课. 这不怕, d ...
- List和Map、Set的区别
首先 List 和 Set 是存储单列数据的集合,Map 是存储键和值这样的双列数据的集合:List 中存储的数据是有顺序,并且允许重复:Map 中存储的数据是没有顺序的,其键是不能重复的,它的值是可 ...
- Javaee的霸主之spring系列
Spring 顶级框架 谈及微服务,作为当前主流的企业框架Spring,它提供了一整套相关的顶级项目,能让开发者快速的上手实现自己的应用,今天就介绍下Spring旗下各个顶级项目: Spring IO ...
- foobar2000播放dff格式音乐的解决办法
安装dff插件:http://www.foobar2000.org/components/view/foo_input_dsdiff 离线版本:链接:http://pan.baidu.com/s/1e ...
- 无线网卡与本地连接不能同时使用&一机多网络的优先级设置
无线网卡与本地连接不能同时使用&一机多网络的优先级设置 2012-05-30 20:39 初次记录 2012-08-09 10:32 修订 题目中的两个问题,其实都可以归结为一个问题,即网络优 ...
- top命令行含义解析
快捷键“1”可以快速切换显示所有cpu的信息 快捷键‘x’可以高亮显示当前排序列 shift+方向键:可以快速切换排序的列 top -c 显示完整命令 load含义解释:http://www.ruan ...
- Cocostudio 1.4 实现的DemoShop
开发环境是CocoStudio 1.4 + Cocos2dx 2.2 把项目文件放到Cocos2dx下的projects文件夹下就可以执行了 压缩包里面包括了 源码 和资源文件 执行效果: 初始化界 ...
- MySQL基础笔记(一) SQL简介+数据类型
MySQL是一个关系型数据库管理系统(RDBMS),它是当前最流行的 RDBMS 之一.MySQL分为社区版和企业版,由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发 ...