javascript - AngularJS:如何使用 token 安全性和自定义方法处理 RESTful API?

标签 javascript angularjs rest

假设我有一个 RESTFul API,它具有标准的 GETPOSTPUTDELETE 方法,但我还有其他针对特定对象类型自定义的方法,除此之外我还需要一个安全 token 。

因此此服务的 URL 可能如下所示:

获取/放置/发布/删除 http://sample.com/api/User/123?token=ABCDEF1234

获取 http://sample.com/api/User/GetUsersByStatus?token=ABCDEF1234&param1=blah&param2=foo

发布 http://sample.com/api/User/DoSomethingCrazy?token=ABCDEF1234

最后两个执行一些自定义功能。也许是重置密码,或者是克隆用户并返回记录,我不知道。只是自定义“东西”。

用 Angular 处理这个问题的最佳实践方法是什么?我见过 $resource 实用程序,但它似乎只适用于标准的 REST 方法,我不确定如何以下一个 Angular 开发人员能够理解的方式扩展它。

最佳答案

如果我没理解错的话,我相信你想问的是如何让资源方法自动包含你的 token ???如果这是正确的,那么您可以通过几种方式来做到这一点。首先,您可以只扩展预定义的资源方法并加入将在每次调用中应用的参数,或者您可以定义自己的方法。

此外,当您调用一个方法时,如果参数没有经过预限定,它们将最终出现在查询字符串中。

下面是我为 cakephp 实现编写的示例代码。我正在为每个预定义方法和我自己的初始化方法传递操作。


angular.module('myApp.cakephp.services', ['ngResource']).
  factory('CommentSvc', function ($resource) {
        return $resource('/cakephp/demo_comments/:action/:id/:page/:limit:format', { id:'@id', 'page' : '@page', 'limit': '@limit' }, {
          'initialize' : { method: 'GET', params: { action : 'initialize', format: '.json' }, isArray : true },
          'save': { method: 'POST', params: { action: 'create', format: '.json' } },
          'query' : { method: 'GET', params: { action : 'read', format: '.json' } , isArray : true },
          'update': { method: 'PUT', params: { action: 'update', format: '.json' } },
          'remove': { method: 'DELETE', params: { action: 'delete', format: '.json' } } 
        });
  })

希望对你有帮助

--丹

关于javascript - AngularJS:如何使用 token 安全性和自定义方法处理 RESTful API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11760463/

相关文章:

javascript - 无法在另一个日期选择器中更改日期选择器参数吗?

java - 如何在 Java 中使用 try-catch 处理不同的异常 http 类型?

c# - 如何格式化Json输出?

javascript - 使用 HtmlUnit 提交表单

angularjs - 像AngularJS中的模板引用一样吗?

angularjs - 如何取消 $resource 请求

c# - 尝试调用 rest apis,但出现 http 请求异常

PHP 动态变量作为 jQuery 选择器

javascript - 关节 : i want to get the value of source": {"id": from json text

javascript - 有没有一种简单的方法可以创建一次显示多个月份的月/年日期选择器?