IHttpActionResult
を使用してCreated-201応答をコーディングするにはどうすればよいですか?
IHttpActionResult
にはこれらのオプションしかありません
私が今やっていることは以下のこのコードですが、IHttpActionResult
ではなくHttpResponseMessage
を使用したいと思います
public IHttpActionResult Post(TaskBase model)
{
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, model);
response.Headers.Add("Id", model.Id.ToString());
return ResponseMessage(response);
}
ビューがApiController
から派生している場合、基本クラスからCreated
メソッドを呼び出して、そのような応答を作成できるはずです。
サンプル:
[Route("")]
public async Task<IHttpActionResult> PostView(Guid taskId, [FromBody]View view)
{
// ... Code here to save the view
return Created(new Uri(Url.Link(ViewRouteName, new { taskId = taskId, id = view.Id })), view);
}
return Content(HttpStatusCode.Created, "Message");
コンテンツがNegotiatedContentResultを返しています。 NegotiatedContentResultはIHttpActionResultを実装します。
同様の問題:メッセージとともにNotFoundを送信したい場合。
return Content(HttpStatusCode.NotFound, "Message");
または:
return Content(HttpStatusCode.Created, Class object);
return Content(HttpStatusCode.NotFound, Class object);