【发布时间】:2015-01-08 16:49:00
【问题描述】:
我正在尝试创建一个小注册应用程序,它将作为 REST API 发布。它将允许用户/系统在我的系统上创建一个帐户。他们将传入用户名和密码。 根据我阅读的规则,URI中的“/”必须用于表示层次关系。
所以我想知道这种类型的 URI 是否符合规则,是否足够直观:
POST http://myregistrations.com/users/user/{user_id},{password}
GET http://myregistrations.com/users/user/{user_id}
PUT http://myregistrations.com/users/user/{user_id},{password}
DELETE http://myregistrations.com/users/user/{user_id}
或者我应该从 URI 中删除“用户”部分吗?在这种情况下,如果我想获得“所有”用户,我可以执行以下操作:
GET http://myregistrations.com/user/
DELETE http://myregistrations.com/user/ ** i might not allow this but just for discussion purposes...
其余的方法看起来像这样:
POST http://myregistrations.com/user/{user_id},{password}
GET http://myregistrations.com/user/{user_id}
PUT http://myregistrations.com/user/{user_id},{password}
DELETE http://myregistrations.com/user/{user_id}
我不想让事情变得过于复杂......但我也想确保我遵守约定。 我倾向于第二个例子,我没有“用户”。鉴于 URI 的每个部分都应该映射到一个可寻址资源,并且我不会允许对帐户进行批量更新,因此此时拥有“用户”的概念似乎毫无用处。不过我可能会遗漏一些东西。
也许我只是在分裂头发。我也在这里阅读了有关定义 REST API 的其他帖子……但我还没有找到任何东西。
谢谢。
【问题讨论】:
-
我当然不会同时使用
user和users。如果是我,我会使用user来表示那些获得user-id的人,并使用users作为列表。