1
我想實現正確的HTTP語義,並根據資源是否已創建或更新以及響應內容描述創建的資源,從我的PUT操作中返回200 OK或201 CREATED。Web API - 如何在響應中返回特定的狀態碼?
不幸的是,PUT的Web API示例並未顯示如何執行此操作。你應該做什麼來指定一個錯誤代碼並返回一個響應體?
我想實現正確的HTTP語義,並根據資源是否已創建或更新以及響應內容描述創建的資源,從我的PUT操作中返回200 OK或201 CREATED。Web API - 如何在響應中返回特定的狀態碼?
不幸的是,PUT的Web API示例並未顯示如何執行此操作。你應該做什麼來指定一個錯誤代碼並返回一個響應體?
如果你真的可以返回請求內容,那麼這裏是一個更有效的方法。這將避免所有內容的反序列化和重新序列化。
public HttpResponseMessage Put(HttpRequestMessage request)
{
// do stuff
return new HttpResponseMessage(created ? HttpStatusCode.Created : HttpStatusCode.OK) {
Content = request.Content
};
}
// PUT
// path/to/{resourceName}
public HttpResponseMessage Put(CreateResourceRequest request)
{
//do stuff...
// Return 200 [OK] if it is an update and 201 [CREATED] if the resource is created.
// Usually, the response body should be same as the original request.
var responseContent = request;
return Request.CreateResponse(created ? HttpStatusCode.Created : HttpStatusCode.OK, responseContent);
}
很酷,這是一個不錯的提示! :) –