实体列表的HTTP范围标头

Ben*_*las 6 rest entity http range

我有这样的资源

/entities        # GET, POST
/entities/<id>   # GET, PUT, DELETE
Run Code Online (Sandbox Code Playgroud)

GET/entities获取所有实体的列表.现在我想轮询更新.单个实体的情况很简单:

GET /entities/2
If-Modified-Since: <http date>
Run Code Online (Sandbox Code Playgroud)

这个清单很棘手.我希望响应是一个实体列表,自给定时间点以来更新或创建.我直观地使用了

GET /entities
Range: after <http date>
Run Code Online (Sandbox Code Playgroud)

这是HTTP规范的有效请求http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2.但该规范还要求一个206 Partial Content响应,其中必须包含一个Content-Range标题.甲Content-Range头,反过来,强制要求中指定的字节范围http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16.这对我的用例来说显然非常不方便.

您如何通过HTTP请求语义范围?

Jef*_*ata 2

通过阅读第 14.35.1节,我想说Range标头用于从资源请求特定范围的字节,而不是根据修改时间请求一组实体。

在这种情况下,我认为您应该将范围视为过滤器并将日期作为查询字符串参数传递:

GET /entities?modified-since=<date>
Run Code Online (Sandbox Code Playgroud)