任何想法为什么投影可以在资源级而不是项目上工作?

问题描述:

我有一个奇怪的问题,即:任何想法为什么投影可以在资源级而不是项目上工作?

击中/api/calculations我得到的所有计算项目的列表属性除了postcard属性(这是我的预期),但:

击中/api/calculations/53478f158a866abeff回报ALL计算属性包括postcard ...!

我的印象是,datasource投影应该应用于两个GET级别。我从配置中错过了什么...?

而这正是(部分)在我settings.py

calculations_schema = { 

... some attributes... 

    'postcard': { 
    'type': 'string' 
    }, 

... more attributess... 
} 

calculations = { 
    'resource_methods': ['GET'], 
    'item_methods': ['GET', 'PUT', 'PATCH'], 
    'schema': calculations_schema, 
    'item_title': 'Calculation', 
    'datasource': { 
     'projection': { 
      'postcard': 0 
     }, 
     'default_sort': [('_updated', -1)] 
    } 
} 

DOMAIN = { 
    ... other resources ... 
    'calculations': calculations, 
    ... more resources ... 
} 

谢谢!

+0

当某人提出问题时也提供评论,知道它有什么问题,并可能改善它...? – stratosgear

好吧,看起来我被同样的缓存发生了“咬”。 Eve甚至没有将资源归还,但它的回复是HTTP-304,我只是在浏览缓存的以前的calculation版本。

我发现了什么浪费时间... :(

但是今天我们学到了什么,孩子

两个调试技巧,导致了这一点:?

  • 尝试请求在隐身窗口(或其他浏览器)中验证问题是通用的,并且不适用于您正在查看的特定情况。

  • 检查网络ChromeDevTools的工作标签(或其他浏览器中的等效标签)可以查看实际的HTTP请求(包含标题和所有内容)