【问题标题】:AngularJs $resource dynamic URLAngularJs $resource 动态 URL
【发布时间】:2014-07-07 08:49:30
【问题描述】:

我有这个 REST 服务,它与 LDAP 服务器对话。为了获取有关用户的所有可用数据,我必须访问:

GET /users/:userId

因为 LDAP 中的用户是由属性描述的,所以我只想获取一些而不是所有属性。在这种情况下必须这样做:

GET /users/:userId/o/mail/displayName/....(list of attributes required)

如何在使用 AngularJS $resource 时为属性列表创建这个动态 url?

.factory('User', ['$resource', 'REST_API_URL', function ($resource, REST_API_URL) {
    var User = $resource(
                REST_API_URL + '/users/:id', 
                {id: '@id'}
        );

    return User;
}])

【问题讨论】:

    标签: javascript angularjs rest ldap


    【解决方案1】:

    您描述的第一个 URL 遵循 RESTful 约定,但不是第二个。当 URI 中有动作动词(此处为 displayName)时,您的 API 不再是 RESTful。

    AngularJS $resource 仅与 RESTful 服务器端数据源交互。您的 API 必须遵循许多 RESTful 约定。

    我推荐你read answers to this question 高度相关并描述这些约定。

    由于您的 API 不符合这些标准,您将不得不基于较低级别的 $http service 构建自己的 $resource-like CRUD 服务。 (example here)

    【讨论】:

    • 无论如何,您都可以覆盖资源方法来指定自定义 Url: var Order = $resource('myUrl/:orderId', {orderId : "@orderId"}, { query:{ method : 'GET' , isArray : false, url: 'myCustomUrl', } } );
    猜你喜欢
    • 2016-02-14
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多