zoukankan      html  css  js  c++  java
  • 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规范的东西。但是我不打算这样做。

  • 相关阅读:
    mongodb索引 单键索引
    索引 _id
    mongodb索引简介
    mongodb的基本操作之数据创建索引
    mongodb的基本操作之数据删除
    mongoDB的基本操作之数据更新多条数据
    mongodb的基本操作之更新不存在的数据
    mongoDB的基本操作之数据更新
    mongodb的基本操作之数据写入和查询
    连接mongodb服务器
  • 原文地址:https://www.cnblogs.com/letyouknowdotnet/p/11024167.html
Copyright © 2011-2022 走看看