当我想在我的服务器上注册用户时,我使用我创建的RESTful API来完成这项工作。例如,我会向POST
http://server.com/users
请求
此API调用将生成新的用户ID,如果用户当前不存在并将其保存到数据库然后将新创建的用户ID返回给应用程序,那么应用程序将知道从现在开始使用的用户ID上。
与此同时,我想将用户的设备注册到我的网络服务,因为我将发送推送通知。现在这对于如何做到这一点并不困难,但我现在想一想,它是如何有效的?这些是我的想法:
APIUserController
和一个APIDeviceController
。因此,如果我想注册一个用户,那么它将是POST
请求http://server.com/users
,要注册一个设备,它应该是对POST
的{{1}}请求。因此,对http://server.com/devices
的调用将返回已创建的users
,然后我会userID
向POST
发出devices
请求userID
我的第一次通话。这意味着,从应用程序到服务器的两个不同的调用。POST
发出http://server.com/users
个请求,其中包含所需的所有数据(如设备令牌),并在服务器上创建用户以及创建设备。但这意味着,我会直接创建数据库中的条目,并在用户控制器中混合责任。 我在这方面肯定需要一些帮助。在创建新用户和注册新设备时区分责任的目的是什么,当我通过调用服务器两次使用restful方法来降低效率时?
答案 0 :(得分:2)
我认为可以说设备属于给用户,因此当您将新用户添加为可选组件时,我不会发现包含设备信息有任何损害。有点像用户想要选择性地包含他们的" bio"。您可能不会为" bios"设置单独的端点。
此外,由于您在用户和设备之间存在直接关系,因此可能更合乎逻辑,而不是使用单独的/devices
端点使其成为/users
的子目录。类似于/users/12345/devices
。