我正在尝试创建一个新的表达式'在VersionOne中 - 有效添加新的评论'谈话。
理论上,rest-1.v1 / Data API应该允许这样做,但我无法弄清楚如何做到这一点 - 关于使用API(使用POST)创建对象的文档很少。
FWIW,这就是我正在做的事情(成功访问具有有效凭据的服务器后):
URL: /rest-1.v1/Data/Expression
XML:
<Asset href="<Server Base URI>/rest-1.v1/Data/Expression">
<Attribute name="AssetType">Expression</Attribute>
<Relation name="InReplyTo" />
<Attribute name="AuthoredAt">2014-05-28T21:48:37.940</Attribute>
<Attribute name="Content">A new comment</Attribute>
<Attribute name="AssetState">64</Attribute>
<Relation name="Author">
<Asset href="<Server Base URI>/rest-1.v1/Data/Member/2015" idref="Member:2015" />
</Relation>
<Relation name="BelongsTo">
<Asset href="<Server Base URI>/rest-1.v1/Data/Conversation/2018" idref="Conversation:2018" />
</Relation>
<Attribute name="Author.Name">user@example.com</Attribute>
<Attribute name="Author.Nickname">User Name</Attribute>
<Relation name="Mentions">
<Asset href="<Server Base URI>/rest-1.v1/Data/Story/2017" idref="Story:2017" />
</Relation>
</Asset>
我一直收到400 Bad Request以下错误:
<Error href="<Server Base URI>/rest-1.v1/Data/Expression">
<Message>Violation'Required'AttributeDefinition'Content'Expression</Message>
<Exception class="VersionOne.DataException">
<Message>Violation'Required'AttributeDefinition'Content'Expression</Message>
</Exception>
</Error>
我认为我错过了一些明显的东西 - 有人知道它是什么吗?
答案 0 :(得分:1)
如果检查VersionOne Expression的元数据,您将看到3个必填字段(Author,AuthoredAt,Content)。从逻辑上讲,能够创建一个单一的僵尸表达式是有意义的,但我目睹了其他情况。这可能是样式表或我的浏览器中的一个错误,因为它似乎POSTING只有这三个将返回400错误。要获得有保证的工作负载,请包含关系“inReplyTo”,这就是在特定对话的上下文中创建表达式所需的全部内容。
鉴于您正在响应现有表达式(注释)这应该可以正常工作。
POST to rest-1.v1/Data/Expression
<Asset>
<Relation name="Author" act="set">
<Asset idref="Member:2015" />
</Relation>
<Attribute name="AuthoredAt">2014-05-02T21:48:37.940</Attribute>
<Attribute name="Content" act="set">A new comment</Attribute>
<Relation name="InReplyTo" act="set">
<Asset idref="Expression:xxxxx" />
</Relation>
</Asset>
您不需要资产状态或提及或属于。 AssetState是只读的,并且在创建表达式后会自动填充BelongsTo。它继承了对InReplyTo字段中输入的Expression对象中包含Conversation的引用,并且Mentions relation是可选的。
FYI, 我相信你没有在浏览器中看到元查询输出右侧的Legend。真的很快,当你进行元查询时,带有*的项目需要发布,粗体项目是读/写可选,斜体项目是只读的,而粗体项目是底部附加“:operation”的粗体项目是您可以对该特定资产执行的操作。