Dot-Net-Core

為生產禁用控制器 API 端點

  • April 28, 2020

什麼是允許在開發中公開寧靜端點 api 甚至控制器但在發佈到其他環境時不可用的推薦方法?

沒有內置的方法可以做到這一點。您必須執行注入IHostingEnvironment控制器之類的操作,然後在您的操作中進行如下檢查:

if (!env.IsDevelopment())
{
   return NotFound();
}

這將給出該路線實際上並不存在於開發環境之外的*外觀。*如果您要做的足夠多,那麼創建一個可以應用的自定義資源過濾器實際上可能會更好:

public class DevelopmentOnlyAttribute : Attribute, IResourceFilter
{
   public void OnResourceExecuting(ResourceExecutingContext context)
   {
       var env = context.HttpContext.RequestServices.GetService<IHostingEnvironment>();
       if (!env.IsDevelopment())
       {
           context.Result = new NotFoundResult();
       }
   }

   public void OnResourceExecuted(ResourceExecutedContext context)
   {
   }
}

然後您可以將其應用於相關操作,例如:

[DevelopmentOnly]
public IActionResult Foo()

引用自:https://stackoverflow.com/questions/54988826