我正在构建我的第一个 API,我想知道这里最好的方法是什么。我有一个带有布尔字段“isArchived”的对象。当用户点击对象上的“存档”时,我想翻转这个布尔值。我的问题:我可以这样称呼:
PUT /api/objects/archive/1
这将使用如下逻辑击中控制器:
[ActionName("archive")]
public HttpResponseMessage ArchiveObject(int id)
{
if (!ModelState.IsValid)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
_service.ArchiveObject(id);
return Request.CreateResponse(HttpStatusCode.OK);
}
还是通过以下方式更好地修补:
PATCH /api/objects/1
然后在正文中发送一些数据,例如
{isArchived: true}
似乎后者更昂贵,因为我们发送数据而不仅仅是一个 id。什么是最好的,为什么?