C# WebAPI and NotFound with message in MVC .NET 4.5
Usually, WEBAPI should return correct HTML status code ( read also https://damienfremont.com/2017/11/23/rest-api-maturity-levels-from-0-to-5/ ) . Let’s say we are saving an entity – the OK result could return a meaningful message. How about querying for an id that you cannot find ? Easy: NotFound : .But –the NotFound does NOT show an message. How a client can make a difference between the fact that the entity is not found for a specific id and the fact that ,maybe, the whole site is not deployed / a route does not exists ? What we need is a NotFound with a specific message. ( In .NET Core we have NotFoundObjectResult )
I have found 2 solutions: one complicated and one simple.
The complicated one:
var err = Request.CreateErrorResponse( HttpStatusCode.NotFound, new HttpError("my message”) ); return new ResponseMessageResult(err);
The simple one
//this is for APIController only, not usual controller in .NET 4.5 return Content(HttpStatusCode.NotFound, "my message");