使用RESTful API调用注册用户

时间:2015-10-31 20:45:02

标签: php swift api rest restful-architecture

当我想在我的服务器上注册用户时,我使用我创建的RESTful API来完成这项工作。例如,我会向POST

发出http://server.com/users请求

此API调用将生成新的用户ID,如果用户当前不存在并将其保存到数据库然后将新创建的用户ID返回给应用程序,那么应用程序将知道从现在开始使用的用户ID上。

与此同时,我想将用户的设备注册到我的网络服务,因为我将发送推送通知。现在这对于如何做到这一点并不困难,但我现在想一想,它是如何有效的?这些是我的想法:

  • 使用RESTful API对我来说意味着我使用了一种将任务分离到不同控制器的清晰方法。所以我会有一个APIUserController和一个APIDeviceController。因此,如果我想注册一个用户,那么它将是POST请求http://server.com/users,要注册一个设备,它应该是对POST的{​​{1}}请求。因此,对http://server.com/devices的调用将返回已创建的users,然后我会userIDPOST发出devices请求userID我的第一次通话。这意味着,从应用程序到服务器的两个不同的调用。
  • 但是当我考虑效率时,我首先想到的是,只向POST发出http://server.com/users个请求,其中包含所需的所有数据(如设备令牌),并在服务器上创建用户以及创建设备。但这意味着,我会直接创建数据库中的条目,并在用户控制器中混合责任。

我在这方面肯定需要一些帮助。在创建新用户和注册新设备时区分责任的目的是什么,当我通过调用服务器两次使用restful方法来降低效率时?

1 个答案:

答案 0 :(得分:2)

我认为可以说设备属于给用户,因此当您将新用户添加为可选组件时,我不会发现包含设备信息有任何损害。有点像用户想要选择性地包含他们的" bio"。您可能不会为" bios"设置单独的端点。

此外,由于您在用户和设备之间存在直接关系,因此可能更合乎逻辑,而不是使用单独的/devices端点使其成为/users的子目录。类似于/users/12345/devices

相关问题