【发布时间】:2016-01-05 16:24:14
【问题描述】:
我的理解是幂等请求不会改变任何东西。如果 GET 请求产生了副作用(例如,将请求缓存到搜索端点),它仍然是幂等的吗?
【问题讨论】:
标签: api get api-design idempotent
我的理解是幂等请求不会改变任何东西。如果 GET 请求产生了副作用(例如,将请求缓存到搜索端点),它仍然是幂等的吗?
【问题讨论】:
标签: api get api-design idempotent
要使操作具有幂等性,您必须能够重复该操作而不会产生额外的副作用。
在您的具体示例中,如果 GET 请求导致从外部源获取数据,那么问题实际上是关于该源的幂等性,尽管如果您提到搜索端点,它很有可能会是。
p>这种情况下的幂等性并不能保证每次返回的结果都是相同的,只是可以在不影响系统的情况下随意调用端点。
编辑:一个反例:如果 GET 端点导致数据出队,即从系统中删除以致无法再次检索,那么这将 不是是幂等的.
【讨论】:
是的,
在描述中,缓存是在服务实现中,而不是在 GET 级别或某个中间。
副作用是服务内部的,它不会改变后续调用将返回的结果。
http://www.restapitutorial.com/lessons/httpmethods.htmlGET 下的一些背景
【讨论】: