将每个不同的Get方法放在自己的控制器类中是最佳实践,还是在同一个类中有多个(相关的和非相关的) API方法非常好,如果这些方法非常简单和简单的话。
例如,这两个API方法在同一个控制器类中工作得很好,但是它们在自己的类中会更好吗?
如果是的话,为什么?
public class TestController : ApiController
{
[HttpGet]
[Route("api/test/ping")]
public IHttpActionResult Ping()
{
try
{
return Ok("HELLO");
}
catch (Exception ex)
{
return Content(HttpStatusCode.InternalServerError, ex.Message);
}
}
[HttpGet]
[Route("api/test/echo/{message}")]
public IHttpActionResult Echo(string message)
{
try
{
return Ok(message);
}
catch (Exception ex)
{
return Content(HttpStatusCode.InternalServerError, ex.Message);
}
}
}发布于 2018-07-27 11:46:09
一旦控制器的路由是不同的,并且不会在当前控制器或其他控制器中造成路由冲突,则没有什么可以阻止您在控制器中进行多个操作。
以你提供的例子为例。您可以利用控制器的路由前缀来帮助组织类似的路由。
[RoutePrefix("api/test")]
public class TestController : ApiController {
//GET api/test/ping
[HttpGet] [Route("ping")]
public IHttpActionResult Ping() {
return Ok("HELLO");
}
//GET api/test/echo/hello%20world
[HttpGet] [Route("echo/{message}")]
public IHttpActionResult Echo(string message) {
if(message == null)
return BadRequest();
return Ok(message);
}
}https://stackoverflow.com/questions/51557186
复制相似问题