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 –删除资源

帮我把下列代码的case后内容和 “nStepMode =” 后的内容进行调换 switch (nThirdStepMode) { case PM_UNKNOWN_MODE: { // 无法识别的第三方工步号 return false; } break; case PM_STEP_REST: { nStepMode = WORK_HOLD; } break; case PM_STEP_RANDOM_REST: { nStepMode = WORK_HOLD_RANDOM; } break; case PM_STEP_SYN_SUSPEND: { // 无法识别的第三方工步号 return false; } break; case PM_STEP_PAUSE: { nStepMode = WORK_PAUSE; } break; case PM_STEP_STOP_X: { // 无法识别的第三方工步号 return false; } break; case PM_CONST_POWER_CHARGE: { nStepMode = WORK_CP; } break; case PM_CONST_POWER_DISCHARGE: { nStepMode = WORK_DP; } break; case PM_CONST_RESISTANCE_CHARGE: { nStepMode = WORK_CR; } break; case PM_CONST_RESISTANCE_DISCHARGE: { nStepMode = WORK_DR; } break; case PM_STEP_INCUBATOR_LINK: { // TODO:处理 温箱联动 return false; } break; case PM_CONST_CURRENT_CHARGE: { nStepMode = WORK_CC; } break; case PM_CONST_CURRENT_DISCHARGE: { nStepMode = WORK_DC; } break; case PM_STEP_C_RATE_CHARGE: { nStepMode = WORK_CRATE; } break; case PM_STEP_C_RATE_DISCHARGE: { nStepMode = WORK_DRATE; } break; case PM_STEP_CCCV_CHARGE: // carefully! { nStepMode = WORK_CCCV; } break; case PM_STEP_CCCV_DISCHARGE: // carefully! { nStepMode = WORK_DCDV; } break; case PM_CONST_VOLT_CHARGE: { nStepMode = WORK_CV; } break; case PM_CONST_VOLT_DISCHARGE: // support lmtPara from V7206 { nStepMode = WORK_DV; } break; case PM_STEP_RATE_CV_CHARGE: { nStepMode = WORK_CRATECV; } break; case PM_STEP_RATE_CV_DISCHARGE: { nStepMode = WORK_DRATEDV; } break; case PM_STEP_CPCV_CHARGE: { nStepMode = WORK_CPCV; } break; case PM_STEP_CPCV_DISCHARGE: { nStepMode = WORK_DPDV; } break; case PM_STEP_LOOP: { nStepMode = WORK_WHILE; } break; default: { // 无法识别的第三方工步号 return false; } break; }
最新发布
05-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值