【发布时间】:2019-01-04 12:47:36
【问题描述】:
最好的做法是将每个不同的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);
}
}
}
【问题讨论】:
-
在一个控制器中拥有多个 getter 是完全合法的,尤其是当它们的路由应该相似时。
-
除了下面的答案,我是否可以建议研究面向服务的架构。我认为它会让你思考很多问题,比如“这种方法应该去哪里,因为我有一些服务/控制器,但它们都不适合这种方法。”
标签: c# asp.net-web-api asp.net-web-api2 asp.net-web-api-routing