特定版本的文档的嵌入行为是意外的

问题描述:

我使用Python REST API框架相当成功,我感谢它的作者提供它。特定版本的文档的嵌入行为是意外的

根据(稀疏)文档,可以应用特定版本的嵌入。考虑在http://python-eve.org/

DOMAIN = { 
    'emails': { 
     'schema': { 
      'author': { 
       'type': 'dict', 
       'schema': { 
        '_id': {'type': 'objectid'}, 
        '_version': {'type': 'integer'} 
       }, 
       'data_relation': { 
        'resource': 'users', 
        'field': '_id', 
        'embeddable': True, 
        'version': True, 
       }, 
      }, 
      'subject': {'type': 'string'}, 
      'body': {'type': 'string'}, 
     } 
    } 

在这里,下面的例子将文档直接复制,“作者”是“_id”和每一个电子邮件文件“_version”字段的模式。

A.假设我的前端是运行JavaScript,当我申请的声明

Restangular.one('emails', some-id).get({embedded: {"author": 1}}).then(

检索与给定ID的邮件文件,并要求笔者文档的嵌入,我得到的最新版本而不是电子邮件文档作者的_version字段中指示的版本。为什么不尊重版本?有没有办法通过一些神奇的配置来强制嵌入其中指定的版本?

BW,解决方法很简单 - 简单地禁止这种自动嵌入,而是首先检索电子邮件文档,然后检索作者的特定版本,但这是违反直觉的。

B.手册列出了一个名为'embedded_fields'的配置属性,它指定并引用默认启用嵌入式资源序列化的字段列表。一个期望,即使该字段指定作者默认情况下应嵌入,声明

Restangular.one('emails', some-id).get({embedded: {"author": 0}}).then(

将覆盖默认值。那么,它不会。同样,为什么?或者它可能只是一个错误。

你使用的是什么版本的夏娃?嵌入的版本化文档在0.6之前有问题,但它们应该全部在提交b92890中解决。尝试升级到v0.6.1,或者如果您在0.6后看到问题,请告诉我。

+0

显然我使用的是0.6以上的版本。事实上,0.6.1版本按预期工作 - 我提出的两个问题都已得到解决。 –