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

时间:2016-02-10 16:27:21

标签: python versioning eve

我正在非常成功地使用Python REST API Framework,我感谢其作者提供它。

根据(稀疏)文档,可以应用特定版本的嵌入。请考虑直接从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'},
         }
     }

此处,'author'是每个电子邮件文档中包含'_id'和'_version'字段的架构。

一个。假设我的前端正在运行Javascript,当我应用语句

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

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

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

B中。手册列出了一个名为“embedded_fields”的配置属性,它指定了我引用的默认情况下启用了嵌入式资源序列化的字段列表。 A会期望即使此字段指定默认情况下应嵌入作者,语句

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

将覆盖默认值。嗯,事实并非如此。再次,为什么?或者它可能只是一个错误。

1 个答案:

答案 0 :(得分:2)

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