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 HttpRespons
Depends. However, in your example, since the two versions of the Get action produce the same reponse, I would return the entity Branch instead of the HttpResponseMessage. That is because the framework will help abstract out the actual creation of the HttpResponseMessage so the action focuses more on the business logic.
If you need more control over the reponse message (i.e. setting a different state code), than I would return the HttpResponseMessage instead.
Hope this helps.
I will return DTO wrapped in HttpResponseMessage as below:
return this.Request.CreateResponse(HttpStatusCode.OK, branch);
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.
if (model.EventDate == null)
{
var responseMessage = new HttpResponseMessage();
responseMessage.StatusCode = HttpStatusCode.PreconditionFailed;
responseMessage.ReasonPhrase = "Please enter valid EventDate input";
return responseMessage;
}