实体列表的HTTP范围标头

时间:2011-10-23 19:52:27

标签: http rest entity range

我有这样的资源

/entities        # GET, POST
/entities/<id>   # GET, PUT, DELETE

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

GET /entities/2
If-Modified-Since: <http date>

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

GET /entities
Range: after <http date>

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请求语义范围?

1 个答案:

答案 0 :(得分:2)

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

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

GET /entities?modified-since=<date>