我的 API 有以下功能,我偶然发现了几个问题:
POST /user(需要全名、电子邮件、密码)将创建一个新用户,如果已创建用户,则会生成一个唯一的激活 ID,并通过邮件将激活帐户的链接发送给用户。
PUT /user(需要 id、email)将激活用户。
一旦用户激活了它的帐户,它就可以登录。
- POST /session(需要电子邮件、密码)并登录用户。
- GET /session 将查看 cookie 会话 ID,如果经过身份验证,则返回用户信息。
- DELETE /session 将用户注销。
一旦用户登录,他会被要求提交他们的兴趣(只是一个 HTML 文本区域),他们也可以提交关于他们的帐户的描述(位置、性别等,但这都是可选的,所以也是一个 HTML 文本区域,就像 Twitter 帐户一样描述)
现在我的问题是:
如您所见 2. PUT /user 将激活用户,但是我将如何在适当的 restful 设计中处理提交的兴趣和帐户描述?
我是否应该查看我的后端服务器 PUT /user 将进入并检测提交的字段的位置?
或者创建一个单独的 PUT /user/activate 和 PUT /user/interests 是否更有意义。
完成后,我想用恢复密码来扩展它,这也是一个 PUT /用户,服务器端的字段检测会不会有点乱?
现在关于骨干网,这是我的会话模型:
var Session = Backbone.Model.extend({
url: '/session'
});
var session = new Session();
session.fetch(); // Get the user authentication of the backend server.
我的用户模型:
var User = Backbone.Model.extend({
url: '/user'
});
function signup(fullName, email, password){
var user = new User();
user.save({
fullName: fullName,
email: email,
password: password
});
};
function activate(id, activationId){
var user = new User();
user.save({
id: id,
activationId: activationId
});
};
// Possibility...?
function submitInterests(id, interests){
var user = new User(url: '/user/interests/');
user.save({
id: id,
activationid: activationId
});
}
感谢您的阅读。