RESTful实现多个模型

时间:2014-05-24 07:24:56

标签: api rest restful-url

我有两个模型,conversationsmessages,第一个存储会话信息(与多对多关系的数据透视表conversation_user),第二个只是存储消息,作者的id和conversation_id(使用数据透视表message_user将每条消息链接到每个用户,以便每个消息都可以将消息标记为已读/未读或存档/删除。

现在,要创建一个新的对话,我可以做两件事,我不知道哪个更好。显然,您可以键入所有收件人的表单,以及要发送的初始邮件(假设用户本身将确保此类会话尚未存在,否则他们只会打开会话):

选项1

POST与所有/conversations相关的user_id致电创建新会话。 conversation_id被发回,POST/messagesconversation_id(作者)和user_id进行message次通话

选项2

将所有数据发送至/conversations,并在操作中,创建对话后,拨打内部电话/messages以创建消息。

选项2 更容易,但我觉得选项1 更加RESTful,因为每个操作只对自己负责。

什么是更好的方法?

1 个答案:

答案 0 :(得分:0)

选项1更模块化,对于直接调用接口可能更好。但是,在这种情况下,它需要通过网络进行两次调用,这表明它可能是错误的解决方案 - 仅在服务器上进行第一次消息调用效率要高得多,而不是需要第二次网络往返。 / p>

选项2中的呼叫可能更准确地描述为发起会话,而不仅仅是添加会话,因为它还会添加消息。这也许可以说明为什么它看起来不那么严格了。然而,它也是一个很好的例子,说明为什么大多数真实的“宁静”界面最近并没有严格的安抚。