【发布时间】:2016-07-28 18:39:05
【问题描述】:
采用这种 API 设计:
-
/articles/{id}- 返回一篇文章。客户端在标头中提供一个令牌来识别它们。 -
/updated-articles- 返回自客户端上次调用此端点以来已更新的文章集合,并且仅包括此客户端先前请求的文章。客户端在标头中提供一个令牌来识别它们。
第二个 enpoint 不太适合我。第二个 enpoint 的设计动机是 客户端不需要跟踪他们最后一次请求的时间。这是否打破了 RESTful API 的“无状态”约束?另一种方法是/updated-articles?since=YYYY-MM-DD,但这需要客户记住
【问题讨论】:
-
为什么不改用
/articles?updated_since=YYY-MM-DD? -
作为一个结构,看起来确实不错。 “为什么不”的原因是客户需要跟踪他们对
YYYY-MM-DD的价值,这违反了要求。 -
您的客户不必是无国籍的。只有您的服务器应用程序。
-
明白。然而,实际上我收到的业务需求不允许我根据 RESTful 原则设计 API。我被要求在服务器上保持状态。我想这只是一个严重的不匹配。
-
老实说,给你这个要求的人只是让事情变得比他们必须的更难。你问为什么?