REST删除现实更新

时间:2015-07-15 05:47:00

标签: rest

我目前正在尝试使用一个端点或用户构建简单的REST api:

GET /users - get all
GET /users/{id} - get one
POST /users - create
PUT /users/{id} - update 
DELETE /users/{id} - delete

问题在于DELETE,因为DELETE实际上只有状态为user的UPDATE REMOVED资源。好吗?我应该返回哪个状态?我目前正在返回202 Accepted,因为我相信说“资源”已被删除"没关系,但也许应该只有200 OK

2 个答案:

答案 0 :(得分:2)

在设计API时,您应始终考虑给予操作对API用户的意义。

用户真的不想知道幕后发生了什么,但只想要一套清晰易懂的行动。

因此,对于您删除操作,您应该考虑,"这会从用户的角度删除该项吗?"

回复状态代码200通常很好,但请记住发送一些内容来支持它。 使用许多不同的状态代码来获得成功并不能真正给出价值,所以要小心。

答案 1 :(得分:2)

RestApiTutorial说明了这一点。

  

DELETE很容易理解。它用于删除 a   由URI标识的资源。

     

成功删除后,返回HTTP状态200(确定)和a   响应主体,也许是已删除项目的表示(通常   需要太多带宽)或包装响应(请参阅返回值   下面)。无论是那个还是返回HTTP状态204(NO CONTENT)都没有   反应机构。换句话说,204状态没有身体,或者   建议使用JSEND样式的响应和HTTP状态200   响应。

但如果您的Api逻辑更易于用户理解,那么您可以将它用于您的目的。

我希望它可以帮助你。