当前位置: 首页 > 知识库问答 >
问题:

基于参数的动态$资源URL

卫烨
2023-03-14

我试图击中一个看起来像/shop/的endpoint

但是,因为它也需要一个auth令牌,所以我将一个数组和令牌一起发送给我的< code>$resource。< br > < code > API shop . create([CreateCampaignService,{ auth _ token:user . token })]

我怎样才能使APIshop能够像这样的东西:
APIshop.create([CreateCampaignService, {auth_token: User.token}, {item_id: Cart.item_id}]) 并点击 /shop/

这是养蜂场:

app.provider('APIshop', function(API_URL) {
    this.$get = ['$resource', function($resource) {
        var shop = $resource(API_URL.url + API_URL.loc + ':service/', {service: '@service'},   { 
            'create':  {method:'POST', isArray: false, params: {service: 'shop'}},
            'update':  {method:'PUT', isArray: false, params: {service: 'shop'}}
        });
        return shop;
    }];
});

共有2个答案

蔡鹏程
2023-03-14

paramDefaults 下的 https://docs.angularjs.org/api/ngResource/service/$resource

url参数的默认值。这些可以在actions方法中被覆盖。如果任何参数值是一个函数,那么每当需要为一个请求获取一个参数值时,就会执行该函数(除非参数被覆盖)。

参数对象中的每个键值首先绑定到 url 模板(如果存在),然后将任何多余的键附加到 ?.

给定模板/path/:verb和参数{verb:'greet',称呼:'Hello'}会导致URL/path/heet?称呼=你好。

如果参数值以@为前缀,那么该参数的值将取自数据对象上相应的键(对于非GET操作很有用)。

所以这应该适用于存储在某处的 TOKEN(也许$rootScope):

app.provider('APIshop', function(API_URL) {
    this.$get = ['$resource', function($resource) {
        var shop = $resource(API_URL.url + API_URL.loc + ':service/:id', {service: '@service', id:'@id'},   { 
            'create':  {method:'POST', isArray: false, params: {service: 'shop', access_token: TOKEN}},
            'update':  {method:'PUT', isArray: false, params: {service: 'shop', access_token: TOKEN}}
        });
        return shop;
    }];
});
郁吉星
2023-03-14

您无法在数组中发送它,因为它只接受一个参数,除非您连接令牌和项目 ID。这是不好的做法。应在请求的标头中包含令牌。

查看此处了解更多信息

使用REST api的Guid令牌而不是用户名/密码进行基本身份验证

 类似资料:
  • 我有一个名为selectedItem的数组,它是从多选择下拉按钮填充的。如果所有选项都被选中,选择项目可能看起来像这样: 我需要添加id值,不管选择了多少,作为超文本传输协议GET请求中的参数。现在我的逻辑看起来像这样。 我的SearchItem界面如下所示: 现在,它创建了一个请求选项对象,其中的值是一个数组,但是我的超文本传输协议请求没有在网络选项卡中的查询字符串参数字段中显示这一点。看来ad

  • 问题内容: 我想让服务提供以下代码中的资源: 然后,当使用该操作时,我想动态传递一个HTTP标头,这意味着它可能随每次调用而改变。这是一个示例,在控制器中,请参见代码中的注释: 您知道直接或通过技巧做到这一点的方法吗? 最后的想法 接受的答案不能完全回答问题,因为标头不是完全动态的,因为工厂实际上返回了工厂(!),而我的代码中不是这种情况。 由于$ resource是工厂,因此无法使其动态化。 最

  • 我需要动态设置通知图像图标,它的名字动态传递给我的类。为此,我需要设置builder.setSmallIcon(intres_id)。我谷歌了一下,但是人们已经使用了setDrawableImage()的例子,我已经看到了这篇文章,并相应地在我的代码中实现。 当然,这会显示错误,因为setSmallIcon()需要将整数传递给它。con是传递给我的构造函数的上下文。我已经看到如何在android中

  • 我试着写一个小函数,它接受两个列表,并根据另一个列表的元素对一个进行排序。所以类似于: 将产生一个排序列表。 然而,可能是一个不同的列表,比如整数、浮点数或其他列表。理想情况下,我希望我的程序能够获取我抛出的任何列表,根据

  • 我试图动态地获取给定数量的资源,但我无法理解语法。在资源集动态分配中,每个单元由其所属的资源集的名称表示。在图中,查封块将查封集合“resourcePool”中的3个资源。 我需要为每一个特工抓取特定数量的资源。然后我尝试创建资源池对象的ArrayList,并将其传递到动态分配中,但由于类型不匹配,因此无法工作。 例如,假设我有一个需要4个资源的代理,所以需要的表达式是:{resourcePool

  • 我最近在使用作为Spring Boot applications(v2.2)开发的微服务,在我的公司,我们使用Keycloak作为授权服务器。我们之所以选择它,是因为我们需要复杂的策略、角色和组,我们还需要用户托管授权(UMA)来在用户之间共享资源。 有没有一种方法可以在控制器级别使用某种注释?类似于下面的伪代码: