1

我正在设计一个 REST API,我想知道允许数据从客户端传递到使用 REST 语义的 GET 请求的正确方法。

一个简单的用例是,当从服务器获取一些数据时,我希望客户端可以选择传递客户端中已经存在的数据的哈希列表,以便服务器可以排除该数据如果数据没有改变,它的响应。

快速搜索表明使用查询字符串是正确的方法。

例如,

GET /api/v1/Products?productsInClient?id1=MD5_HASH_1&id2=MD5_HASH_2 可能是一种设计。

但是,理想情况下,我希望在请求正文中传递查询字符串数据,因为查询字符串中的 id 数量可能会变得非常长。在 GET 请求的正文中传递此类信息并且仍然符合 REST 语义是否可以接受。

另一种选择是将此作为 POST 请求 - 但我不想这样做,因为该请求并没有真正在服务器上创建新资源。唯一的附加服务器操作是排除客户端中已经存在的某些资源。

4

1 回答 1

1

您可以为此使用自定义 http 标头。某些 Web 服务器(例如 iis 6,请参阅此处)也可能存在问题,这些服务器具有与 url 长度相关的限制,出于安全原因,长度可以设置为最大大小,此处也有说明

于 2012-07-23T20:25:38.747 回答