Ocelot简易教程(二)之快速开始1
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的配置。
上一篇: .NetCore SignalR 踩坑记