我看到这个代码在书上,是与客户端创建一个对象(雇员,在这种情况下)提供ID的例子:这段代码是详细的还是我误解了?
public HttpResponseMessage Put(int id, Employee employee)
{
if (!list.Any(e => e.Id == id)
{
list.Add(employee);
var response = Request.CreateResponse<Employee>(HttpStatusCode.Created, employee);
string uri = Url.Link("DefaultApi", new { id = employee.Id });
response.Headers.Location = new Uri(uri);
return response;
}
return Request.CreateResponse(HttpStatusCode.NoContent);
}
我知道如何工作,但不会下缩写代码也适用:
public HttpResponseMessage Put(Employee employee)
{
if (!list.Any(e => e.Id == employee.Id)
{
list.Add(employee);
var response = Request.CreateResponse<Employee>(HttpStatusCode.Created, employee);
string uri = Url.Link("DefaultApi", new { id = employee.Id });
response.Headers.Location = new Uri(uri);
return response;
}
return Request.CreateResponse(HttpStatusCode.NoContent);
}
?
带'PUT'动词的路由'api/employee/{id}'?如果是这样,你需要'id'参数。 –
@David为什么你需要将id作为参数,如果employee参数已经有相同的赋值? – varevarao
@varevarao也许约定;也许被传递的模型没有定义id。当您更新应该可以通过唯一URI访问的现有资源时,可能需要符合REST。 –