欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Ocelot简易教程(二)之快速开始1

程序员文章站 2023-11-02 13:59:22
Ocelot是为.net core量身定做的,目前是基于 netstandard2.0进行构建的。 .NET Core 2.1中如何使用呢? 安装NuGet package 使用nuget安装Ocelot及其依赖项。您需要创建一个netstandard2.0项目并将其Package安装到项目中。然后 ......

ocelot是为.net core量身定做的,目前是基于 netstandard2.0进行构建的。

.net core 2.1中如何使用呢?

安装nuget package

使用nuget安装ocelot及其依赖项。您需要创建一个netstandard2.0项目并将其package安装到项目中。然后按照下面的“启动”和“ 配置”节点启动并运行。
安装命令 install-package ocelot
你可以通过下面的链接查看ocelot的历史版本https://www.nuget.org/packages/ocelot/ 目前最新版是10.0.4。最新版最近正在进行重构,更新比较频繁。

配置

以下配置是一个非常基础的ocelot.json配置,他不会做任何事情,但却可以让ocelot正常运行。

{
    "reroutes": [],
    "globalconfiguration": {
        "baseurl": "https://api.yilezhu.cn"
    }
}

这个配置里面最重要的是baseurl。ocelot需要知道它正在运行的url,以便执行header查找和替换以及某些管理配置。设置此url时,它应该是客户端将看到ocelot运行的外部url,例如,如果您正在运行容器,则ocelot可能会在url上运行但在其前面有类似nginx的响应在。在这种情况下,ocelot基本网址应为。

如果由于某种原因你正在使用容器并且希望ocelot在上响应客户端的请求, 那么你可以这样做但是如果要部署多个ocelot,你可能希望在命令行中传递它某种脚本。希望您使用的任何调度程序都可以传递ip。

特别需要注意的是,这里的ocelot.json配置文件需要在vs中右键修改为“始终复制”属性。

program配置方法

官方文档是按照下面进行配置的。不过个人还是习惯在sartup.cs文件中进行相关的配置。博主就先贴出官方文档给出的配置方法。
然后在你的program.cs你将按照如何代码进行配置。这里最主要的是addocelot() 添加 ocelot 服务), useocelot().wait() (使用 ocelot中间件).

public class program
{
    public static void main(string[] args)
    {
         new webhostbuilder()
            .usekestrel()
            .usecontentroot(directory.getcurrentdirectory())
            .configureappconfiguration((hostingcontext, config) =>
            {
                config
                    .setbasepath(hostingcontext.hostingenvironment.contentrootpath)
                    .addjsonfile("appsettings.json", true, true)
                    .addjsonfile($"appsettings.{hostingcontext.hostingenvironment.environmentname}.json", true, true)
                    .addjsonfile("ocelot.json")
                    .addenvironmentvariables();
            })
            .configureservices(s => {
                s.addocelot();
            })
            .configurelogging((hostingcontext, logging) =>
            {
                //add your logging
            })
            .useiisintegration()
            .configure(app =>
            {
                app.useocelot().wait();
            })
            .build()
            .run();
    }

startup配置方法

我个人也比较习惯在startup.cs中进行配置,不习惯在program.cs中配置。下面是我配置的一种方式,当然你也可以*发挥。

public void configureservices(iservicecollection services)
        {
             services.addmvc();

            services.addocelot(new configurationbuilder()
                    .addjsonfile("ocelot.json")
                    .build());
        }

        // this method gets called by the runtime. use this method to configure the http request pipeline.
public async void configure(iapplicationbuilder app, ihostingenvironment env)
{
        if (env.isdevelopment())
        {
            app.usedeveloperexceptionpage();
        }

        await app.useocelot();

        app.usemvc();
}

总结

今天只是给大家介绍ocelot的非常非常简单地使用,可以说零配置,并介绍了官方的使用方法以及我平时的使用方式,只为了快速开始ocelot,让项目能够跑起来。接下来我们会详细的介绍ocelot的配置。