透過設定檔關閉Web API
在 ASP.NET Core 中,可以利用 IFeatureManager 來轉換 API 要開啟或關閉。
例如像這樣:
[FeatureGate(MyFeatureFlags.FeatureB)]
[HttpGet("FB")]
public IActionResult FB()
{
return Json(new { id = 1, Name = "Peter", Age = 14 });
}
首先要安裝 nuget 套件:Microsoft.FeatureManagement.AspNetCore
接下來加入設定:
"FeatureManagement": {
"FeatureA": true,
"FeatureB": false,
"FeatureC": true
}
接下來加入類別:
public class MyFeatureFlags
{
public const string FeatureA = "FeatureA";
public const string FeatureB = "FeatureB";
public const string FeatureC = "FeatureC";
}
再來是在 Program.cs 加入設定:
builder.Services.AddControllersWithViews();
IConfiguration config = builder.Configuration;
builder.Services.AddFeatureManagement(config.GetSection("FeatureManagement"));
最後設定 controller:
public class TestAPIController : Controller
{
private readonly IFeatureManager _featureManager;
public TestAPIController(IFeatureManager featureManager)
{
_featureManager = featureManager;
}
[HttpGet]
[FeatureGate(MyFeatureFlags.FeatureA)]
public IActionResult FA()
{
return Ok("OK");
}
[HttpGet]
[FeatureGate(MyFeatureFlags.FeatureB)]
public IActionResult FB()
{
return Json(new { id = 1, Name = "Peter", Age = 14 });
}
[HttpGet]
[FeatureGate(MyFeatureFlags.FeatureC)]
public IActionResult FC()
{
return Json(new { id = 1, Name = "John", Age = 24 });
}
}
參考資料