Ahm*_*Din 3 api rest http-status-codes
我有一个PUT创建/替换实体的端点,不需要返回Location标头或任何实体主体。
始终返回204(无内容)是否有意义,或者201如果它是一个新实体并且204替换了该实体,应该返回吗?
状态代码旨在指示服务器尝试理解并满足请求的结果。这里有两种情况:
如果资源是根据请求创建的,则可以返回return 201。一个Location头还可以返回,以确定新创建的资源。如果Location服务器未返回任何标头,则客户端将假定有效请求URI标识了新创建的资源。
如果使用请求有效负载中发送的表示形式修改了资源,则204或是200合适的状态代码。使用后者,您可以返回资源新状态的表示。
RFC 7231的一些相关引号:
该
PUT方法请求创建目标资源的状态或将其替换为请求消息有效负载中包含的表示形式所定义的状态。[...]如果目标资源没有当前表示形式并且
PUT成功创建了一个表示形式,则源服务器必须通过发送201(已创建)响应来通知用户代理。如果目标资源确实具有当前表示形式,并且该表示形式已根据所包含表示形式的状态被成功修改,则原始服务器务必发送200(OK)或204(No Content)响应以指示请求已成功完成。[...]
该
200(OK)状态码表示请求成功。200响应中发送的有效负载取决于请求方法。对于本规范定义的方法,有效载荷的预期含义可以概括为:[...]
PUT,DELETE:的操作的状态的表示;[...]
该
201(创建)状态代码表示该请求已经完成,并已导致正在创建一个或多个新的资源。由请求创建的主要资源由Location响应中的标头字段标识,或者如果未Location接收到字段,则由有效请求URI标识。[...]
该
204(无内容)状态代码表明服务器已成功完成了请求,并没有额外的内容在响应有效载荷给全身。应用请求的操作后,响应头字段中的元数据引用目标资源及其选择的表示形式。[...]
| 归档时间: |
|
| 查看次数: |
615 次 |
| 最近记录: |