【发布时间】:2013-09-29 20:00:48
【问题描述】:
我有一个 API,它根据提供的身份验证(登录)提供帐户资源。由于一个用户只能有一个账号,而且只能看到自己的账号,看不到别人的账号,所以这个API在所有情况下基本上都是一个单一的资源API。
所以为了简单起见,我在网址 accounts/ 下有这个资源,当您访问 accounts/?username=dude&password=veryhard 时,您将获得您的帐户数据(如果您不提供身份验证,您将获得 403)。
现在我想知道这是否是 RESTful。此外,您应该能够更新您的帐户信息,我想知道 PUT 是否合适。据我所知,PUT 应该在资源的唯一 URI 上完成。那么,这是资源的唯一 URI 吗?通常,帐户的 URI 类似于 accounts/3515/,其中 3515 是帐户 ID。但是,用户不知道他们的帐户 ID。此外,应该有更多的登录方式,而不是用户名+密码,您还应该能够使用令牌(如accounts/?token=d3r90jfhda139hg)。那么我们得到了 2 个指向同一个资源的 URL,这对于 RESTful URI 来说也不是很漂亮,不是吗?
那么,什么是最 RESTful 的解决方案?还是我不应该这样做 RESTful?
【问题讨论】:
-
你是在问4个问题,我建议你发布一个问题,这样我就可以用简洁有用的方式回复。
-
@dendini 这 4 个问题都有相同的上下文,我不喜欢创建多个问题并且必须为每个问题解释相同的故事。此外,一个答案可能会使其他问题过时。如果你愿意,你只能回答一个问题。如果这对我有帮助,我将不胜感激。
标签: api rest restful-architecture