使用RESTful API监听更新

时间:2015-02-11 20:40:59

标签: android api api-design

我有一个信使应用程序,可以GET /conversations请求填充用户的会话列表。

下一步是让它“监听”更新,以便标记已更新的对话并添加已创建的对话。

我应该使用相同的/conversations资源来获取更新,还是应该为此分别拥有一个资源?也许,像/conversationUpdates

2 个答案:

答案 0 :(得分:1)

这取决于您是否要遵循RESTful约定。许多客户端库(例如backbone和extjs)都非常支持使用URI声明资源,然后使用不同的HTTP方法(GET,POST,DELETE等)。这有时可能会减少客户需要做的工作,人们将不胜感激。

遵循惯例也会让你的api不那么令人惊讶。毫无疑问,API的其他约定并不是每个域空间都使用REST进行了很好的建模。

重新阅读你的帖子,我看到你想要一个只能获得新帖子的api。什么构成新的?自上次客户端呼叫终点以来新增了什么?在这种情况下,api可能会接受一个参数,例如已经收到的最后一个标识符(如果您使用的是自动增量字段或mongodb id)。在这种情况下,您只需使用/conversations端点,并使用额外的参数。

答案 1 :(得分:0)

首先,我要坚持使用GET方法,因为这正是重点:获取数据。

对于资源名称,我会使用相同的名称,在查询中进一步指定,例如/conversations?state=new。我的观点是资源本身仍然相同,但你只想要它的一个子集。

但是,如果您计划更新除会话之外的其他内容,则可以使用/updates/conversations,因为在这种情况下,可以将更新视为资源,其中包括会话等。