استفاده از Environment های مختلف در Ocelot
یکی از پروژههای خوب که برای پیاده سازی Api GateWay
وجود دارد، پروژه Ocelot
است که تقریبا تمام امکانات مورد نیاز شما را فراهم میکند.
یکی از امکاناتی که احتمالا به آن نیاز پیدا خواهید کرد، امکان داشتن کانفیگهای مختلف برای محیطهای مختلف است. در داکیومنت خود این کتابخانه توضیح مناسبی برای پیاده سازی این امکان داده نشده است که در ادامه روش پیاده سازی آن آمده است.
ابتدا لازم است شبیه کد زیر محل کانفیگهای مورد نظر را به کتابخانه معرفی کنید:
public static void ConfigureOcelot(this ConfigurationManager configuration, WebApplicationBuilder builder)
{
if (builder is null)
{
throw new ArgumentException("not valid builder", nameof(builder));
}
_ = configuration.AddOcelot($"Routes/{builder.Environment.EnvironmentName}", builder.Environment);
_ = builder.Configuration
.SetBasePath(builder.Environment.ContentRootPath)
.AddJsonFile("ocelot.json", optional: false, reloadOnChange: true);
}
سپس کافی است در پوشه Routes
به تعداد محیطهایی که نیاز دارید فایل کانفیگ درست کنید:
- Routes
- Staging
- ocelot.sys.Staging.json
- ocelot.otherSys.Staging.json
- Prod
- ocelot.sys.Prod.json
- ocelot.otherSys.Prod.json
- Staging
نمونه کد روش گفته شده هم در آدرس زیر در دسترس است. با استفاده از این روش به راحتی به ازای سیستمهای مختلف و محیطها میتوانید فایل کانفیگ داشته باشید.