我有一个信使应用程序,可以GET /conversations
请求填充用户的会话列表。
下一步是让它“监听”更新,以便标记已更新的对话并添加已创建的对话。
我应该使用相同的/conversations
资源来获取更新,还是应该为此分别拥有一个资源?也许,像/conversationUpdates
。
答案 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
,因为在这种情况下,可以将更新视为资源,其中包括会话等。