2 回答

TA贡献1946条经验 获得超3个赞
发送两个信息来识别要删除的资源是不常规的。
这并不意味着它是被禁止的,但你应该意识到它。
在正文中添加此信息?
服务器可能会忽略删除请求的正文。
在路径中添加此信息的后缀?
它打破了路径的语义,这应该是一种在层次结构/资源结构中自然识别资源的方式。
我认为,@QueryParam
如果您有传达这两个信息的限制并且您确实无法更改它,那么您的实际方式是一种可以接受的解决方法。
作为替代方案,您还可以使用 URL 矩阵参数来传达复合 ID
,例如 DELETE /myService/client/1,123456
其中 1 是客户端 ID,123456 是 uuid

TA贡献1900条经验 获得超5个赞
从规范:
DELETE 方法请求源服务器删除由 Request-URI 标识的资源。此方法可能会被源服务器上的人工干预(或其他方式)覆盖。即使从源服务器返回的状态码表明操作已经成功完成,客户端也不能保证操作已经执行。但是,服务器不应指示成功,除非在给出响应时它打算删除资源或将其移动到无法访问的位置。
如果响应包含描述状态的实体,则成功的响应应该是 200(OK),如果操作尚未制定,则为 202(已接受),或者如果操作已经制定但响应不包括,则应为 204(无内容)一个实体。
如果请求通过缓存并且 Request-URI 标识了一个或多个当前缓存的实体,那么这些条目应该被视为陈旧的。对此方法的响应不可缓存。
因此,对参数传递没有任何限制或建议。您可以根据需要使用任何变体,方便您使用
添加回答
举报