我目前正在尝试使用一个端点或用户构建简单的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
答案 0 :(得分:2)
在设计API时,您应始终考虑给予操作对API用户的意义。
用户真的不想知道幕后发生了什么,但只想要一套清晰易懂的行动。
因此,对于您删除操作,您应该考虑,"这会从用户的角度删除该项吗?"
回复状态代码200通常很好,但请记住发送一些内容来支持它。 使用许多不同的状态代码来获得成功并不能真正给出价值,所以要小心。
答案 1 :(得分:2)
RestApiTutorial说明了这一点。
DELETE很容易理解。它用于删除 a 由URI标识的资源。
成功删除后,返回HTTP状态200(确定)和a 响应主体,也许是已删除项目的表示(通常 需要太多带宽)或包装响应(请参阅返回值 下面)。无论是那个还是返回HTTP状态204(NO CONTENT)都没有 反应机构。换句话说,204状态没有身体,或者 建议使用JSEND样式的响应和HTTP状态200 响应。
但如果您的Api逻辑更易于用户理解,那么您可以将它用于您的目的。
我希望它可以帮助你。