I’m working on a webapi, EF5, Windsor Castle in a MVC 4 project, and I have a question…should I return the Entity (or DTO) in the Get method or Should I return an HttpResponseMessage? What’s the better way and more standard way to do it?
So, Is it this?
[System.Web.Http.HttpGet]
public HttpResponseMessage GetById(long id)
{
var branch = Uow.Branches.GetById(id);
if (branch != null)
{
Request.CreateResponse(HttpStatusCode.OK, branch);
}
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
}
Or this?
[System.Web.Http.HttpGet]
public Branch GetById(long id)
{
var branch = Uow.Branches.GetById(id);
if (branch != null) return branch ;
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));
}
I will return DTO wrapped in HttpResponseMessage as below:
DTO/ViewModel will enable to send only required properties.
HttpResponseMessage allow to send additional status code, for example in case of invalid input, we can send statusCode precondition failed.