3

VersionOne で新しい「式」を作成しようとしています - 会話に新しい「コメント」を効果的に追加します。

理論的には、rest-1.v1/Data API はこれを許可するはずですが、その方法がわかりません。API を使用して (POST を使用して) オブジェクトを作成することに関する貴重なドキュメントはほとんどありません。

FWIW、これが私がやっていることです(有効な資格情報でサーバーに正常にアクセスした後):

URL: /rest-1.v1/データ/式

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>

明らかな何かが欠けていると思います-誰かがそれが何であるか知っていますか?

4

1 に答える 1

2

VersionOne Expression のメタデータを調べると、3 つの必須フィールド (Author、AuthoredAt、Content) が表示されます。論理的には、ゾンビの表現を 1 つだけ作成できるのは理にかなっていますが、そうではないことを私は目の当たりにしました。これら 3 つだけで POST を実行すると 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 は Expression の作成後に自動的に入力されます。これは、InReplyTo フィールドに入力された Expression オブジェクトから含まれている会話への参照を継承し、Mentions 関係はオプションです。

参考までに、ブラウザーで表示されるメタ クエリ出力の右側に凡例が表示されなかったと思います。ここで非常に簡単に説明すると、メタ クエリを実行する場合、* が付いている項目は投稿する必要があり、太字の項目は読み取り/書き込みオプションであり、イタリック体の項目は読み取り専用であり、「: 操作」が追加された下部の太字の項目は次のとおりです。その特定のアセットに対して実行できる操作。

于 2014-06-02T19:02:09.043 に答える