AngularJS和REST资源命名很奇怪

时间:2014-06-02 09:17:46

标签: javascript angularjs rest

所以在我的角度js应用程序服务中称为' authService'我有以下资源:

var userAreaLogin = $resource('/api/user_area/login');
var userAreaSignup = $resource('/api/user_area/signup');
var session = $resource('/api/user_area/getSession');
var userAreaLogout = $resource('/api/user_area/logout');

但这感觉不对,我只使用get方法,例如:

this.login = function(credentials) {
    var user = userAreaLogin.get(credentials, function() {
        ...
    });
};

this.signup = function(userInfo) {
    var signup = userAreaSignup.get(userInfo, function() {
        ...
    });
};

我对使用什么资源很困惑,我应该有这样的东西吗?

var session = $resource('/api/user/session');
var userArea = $resource('/api/user');

userArea.get(credentials); //should login the user?
userArea.post(credentials); //should signup the user?
session.delete(); //should logout the user?
session.get(); //should get the sessions of the logged user if any?

2 个答案:

答案 0 :(得分:0)

REST会话由客户端维护,而不是由服务维护。您应该使用HTTPS并在每个请求中发送用户名和密码(例如使用HTTP基本身份验证标头)而不是使用会话cookie ...(stateless constraint

OFC。在客户端,您可以登录和注销,这将改变通过AJAX发送的auth标头的内容。

答案 1 :(得分:-1)

你正朝着正确的方向前进。 在设计良好的REST API中,你应该有这样的东西。

POST   /users/sign_in      # Create a user session (signs in)
DELETE /users/sign_out     # Delete a user session (signs out)
POST   /users              # Create a new user resource
GET    /users/:id          # Get the user resource

根据这些API,您可以定义您的服务。我还建议使用更好的$ http,尽管你会写几行代码。

# Session related methods
Session.create
Session.delete

# User related methods
User.create
User.get

希望这会让事情更加清晰。