gpt4 book ai didi

rest - 如何使用 REST 仅返回集合中已更改的资源

转载 作者:行者123 更新时间:2023-12-04 14:29:36 26 4
gpt4 key购买 nike

假设我正在设计一个 REST API,它应该返回一个经过身份验证的用户的联系人列表

e.g. /users/me/contacts

为了提高性能,我将返回一个 ETag 并在以后的 GET 请求中在 If-None-Match header 中提供它。假设没有任何变化,那么 API 将返回一个 Not-Modified 响应。

但是,当联系人列表发生变化时会发生什么?我不想再次返回整个集合,只想返回新的和修改过的项目。

我可以发送一个 HEAD 请求,比较 ETag,然后为新项目发送一个后续的 GET 请求,但这似乎有点浪费。

我刚刚遇到了 If-Range header ,它看起来似乎可以解决问题,但它似乎还需要以字节为单位指定的 Range header 。

你认为 If-Range 标题是要走的路还是我错过了一些明显的东西?

最佳答案

REST 是关于资源的。如 /users/me/contacts是资源的 URL(联系人列表),它必须始终返回资源状态的完整表示。

如果您只想检索那些已更改的联系人,请使用查询参数:

/users/me/contacts?newerThan=20130513124300

newerThan客户端上次访问资源的日期。

这将是 RESTful 因为 newerThan 的每个不同值会形成一个不同的 URL。

关于rest - 如何使用 REST 仅返回集合中已更改的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16855269/

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