我正在以各种模式配置我的服务器,并且我正在从配置文件设置应用程序的模式。 因此,假设我以“X”模式运行 HTTP 服务器,我希望客户端在到达有效端点时获得“HTTP STATUS 200 并且不执行任何逻辑”。 如果服务器处于“Y”模式,所有端点都应执行逻辑并根据请求处理返回状态
[Route("api/todo")]
public class TodoController : Controller{
//if in mode "Y"
[HttpGet("{id}", Name = "GetTodo")]
public IActionResult GetById(long id)
{
var item = _todoRepository.Find(id);
if (item == null)
{
return NotFound();
}
return new ObjectResult(item);
}
//if in mode "X"
[HttpGet("{id}", Name = "GetTodo")]
public IActionResult GetById(long id){
return Ok();
}
}
是否有一种使用过滤器的方法可以在不进入操作方法的情况下向客户端返回 OK?
编辑: 当我说模式时,我的意思是“生产”、“测试”、“登台”等模式。 [就像我们对所有这些模式都有不同的数据库连接字符串一样] 因此,我有一个名为“X”的模式[如果我的服务器在“X”模式下运行],任何访问我公开的端点的客户端都会获得成功。
最佳答案
是的,您可以通过使用验证来做到这一点 middleware 。我不明白你所说的在 X 模式或 Y 模式下运行 HTTP 服务器是什么意思,所以你需要调整你的代码。
例如,看一下下面的图片:
您需要实现如图中的“授权中间件”之类的东西。您只需在进入 Controller (Startup.cs 中的 app.UseMvc())之前返回 HTTP 200 OK 请求即可。
关于c# - ASP.Net Core Web API应用程序: How to return success from all my action methods and not run the code in a certain mode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44117964/