gpt4 book ai didi

java - Jersey/JAX-RS 放置、删除幂等性 - 由程序员提供或完成

转载 作者:行者123 更新时间:2023-12-02 12:26:20 25 4
gpt4 key购买 nike

根据 REST,放置、删除等是幂等的,即对资源重复执行的操作会产生相同的响应。这是以某种方式自动完成的(在浏览器上缓存等),还是由程序员完成/确保(在方法中)?这种幂等性只是象征性的吗?

例如,在我处理删除请求的方法中 -

@DELETE
@Produces({MediaType.TEXT_HTML})
public Response deleteEmployee() {
String response = DAOaccess.deleteEmployee(name);
return Response.noContent().build();
}

我可以在这个方法中做任何事情。那么,我是否必须通过编写此类代码(检查 id 等)来确保幂等性?

当有人问我 put 和 post 之间的区别时,他们是从 HTTP 角度询问,而不是从 JAX-RS 角度询问(因为 JAX-RS 中可能没有功能差异)?

最佳答案

是的,开发者有责任确保这里的幂等性。根据标准,PUT 和 DELETE 应该是幂等的,但是对于这意味着什么还有很大的解释空间。 JAX-RS 在确保开发人员遵循 REST 最佳实践方面做得相对较少,并且会将每个请求路由到适当的端点,而没有短路请求的过滤器。

第二个删除调用返回 204 还是 404?如果重复调用相同的方法,任一响应都会使系统处于相同的状态;一个信号告诉客户端没有资源可以删除,另一个信号告诉客户端目前肯定没有这样的资源。

唯一错误的实现(根据 REST 标准)是系统在重复调用时切换资源的已删除状态 - 这将使客户端离开不确定它的下一次调用会对系统产生什么影响。

关于java - Jersey/JAX-RS 放置、删除幂等性 - 由程序员提供或完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45471614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com