C# ASP.Net核心Web API应用程序:如何从所有操作方法返回成功,而不以特定模式运行代码?
我正在以各种模式配置服务器,并从配置文件中设置应用程序的模式。 所以,假设我在模式“X”下运行HTTP服务器,我希望客户端在到达有效端点时获得“HTTP状态200,不执行任何逻辑”。 如果服务器处于模式“Y”,则所有端点都应执行逻辑并根据请求处理返回状态C# ASP.Net核心Web API应用程序:如何从所有操作方法返回成功,而不以特定模式运行代码?,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我正在以各种模式配置服务器,并从配置文件中设置应用程序的模式。 所以,假设我在模式“X”下运行HTTP服务器,我希望客户端在到达有效端点时获得“HTTP状态200,不执行任何逻辑”。 如果服务器处于模式“Y”,则所有端点都应执行逻辑并根据请求处理返回状态 [Route("api/todo")] public class TodoController : Controller{ //if in mode "Y" [HttpGet("{id}", Name = "G
[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();
}
}
是否有一种使用过滤器的方法可以在不进入action方法的情况下将OK返回给客户端
编辑:
当我说模式时,我的意思是像“生产”、“测试”、“分期”这样的模式。 [就像所有这些模式都有不同的db连接字符串]
因此,我有一个名为“X”的模式[如果我的服务器在“X”模式下运行],任何点击我公开的端点的客户端都将获得成功。是的,您可以通过使用验证来实现这一点。在模式X或模式Y下运行HTTP服务器,我不能完全理解您的意思,因此您需要调整代码 例如,请看下图:
您需要在图中实现类似“授权中间件”的东西。在if进入控制器(Startup.cs中的app.UseMvc())之前,您只需要使用HTTP 200 OK返回请求。您能更清楚地理解模式是什么意思吗?当我说模式时,我指的是“生产”、“测试”、“暂存”等模式。[就像所有这些模式都有不同的db连接字符串]因此,我有一个名为“X”的模式[如果我的服务器运行在模式“X”上],任何点击我公开的端点的客户端都将获得成功。你在哪里配置它?我将从配置文件中读取一个变量,它将告诉我当前模式。类似于:string mode=ConfigurationManager.AppSettings[mode];这可能会有所帮助:我正在尝试使用中间件,如果有疑问,我会回来。