rest –删除资源_REST:删除资源

rest –删除资源

rest –删除资源

在RESTful API中,通常使用HTTP DELETE方法删除资源。 请求URI标识应删除的资源。 DELETE是幂等的HTTP操作。 多次发送相同的DELETE请求应该只更改一次服务器状态。

删除单个资源

单个REST资源通常由包含唯一标识符的URI标识。 例如,我们可以通过向此URI发送DELETE请求来删除位于/ artists / 123艺术家资源。

请求:

DELETE /artists/ 123

响应:

HTTP/ 1.1 204 (No content)

服务器可以使用不同的HTTP状态代码响应删除请求:

  • HTTP 200(Ok)表示删除成功,并带有其他信息。 在这种情况下,响应主体可以包含已删除的资源或有关删除的一些详细信息。
  • HTTP 204(无内容)用于指示成功删除且没有其他信息(响应主体为空)。
  • 如果服务器接受了请求,但删除尚未完成,则返回HTTP 202(接受)。 例如,服务器可能已将请求排入队列以在将来的某个时间处理该请求。

如果给定URI处没有资源,则应返回HTTP 404(未找到)状态码。

删除资源后,对资源URI的GET请求应返回HTTP 404(未找到)或HTTP 410(已消失)。

删除资源集合

HTTP DELETE操作还可用于从资源集合中删除所有项目。 例如,我们可以通过向/ artists发送DELETE请求来删除所有艺术家资源。

请求:

DELETE /artists

响应:

 HTTP/ 1.1 200 (Ok)
 {

    "total" : 321
 }

在此示例中,服务器使用HTTP 200和包含已删除资源总数的响应正文进行响应。

如果需要,可以将删除操作与查询参数结合使用以过滤集合。 例如,这可能会删除2015年1月1日之前已完成的所有订单。

DELETE /orders?fulfilled-before= 2015 - 01 - 01

尽管删除所有收集元素可能很有用,但支持此操作并不常见。 在REST API中提供此功能之前,您应该三思,如果客户端真的应该能够通过单个请求删除整个集合。

请求主体和DELETE方法

删除请求通常不需要请求正文。 但是,在极少数情况下,删除操作除了需要作为有效内容主体传输的过滤器参数外,可能还需要一些其他指令。

HTTP RFC 7231描述了有效载荷主体对DELETE方法的用法,如下所示:

DELETE请求消息中的有效负载没有定义的语义; 在DELETE请求上发送有效内容正文可能会导致某些现有实现拒绝该请求

Stackoverflow上,如果请求主体可以并且应该用于DELETE请求,则可以进行冗长的讨论。

我认为应该避免将请求主体用于HTTP DELETE操作。 通常这是出乎意料的,并且可能使某些技术难以跟踪问题。 作为解决方法,可以使用对单独资源的POST请求。

概要

使用HTTP DELETE方法,我们可以删除REST API中的资源。 必要时,DELETE方法也可用于删除整个集合。 服务通常应使用200(正常),202(已接受)或204(无内容)响应码来响应删除操作。

翻译自: https://www.javacodegeeks.com/2020/10/rest-deleting-resources.html

rest –删除资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值