0

Dies ist meine Ruhe Dienst aktualisieren Liste ArtikelWie Aktie Punkt 2013 Listenpunkt in Ruhe Service

URL: 

https://site/_api/lists/getbytitle('Test')/items(49) 

Header 
    X-RequestDigest : some unique id from contextinfo post service 
    Content-Type  : application/json;odata=verbose 
    X-HTTP-Method  : MERGE 
    IF-MATCH   : 49 

Body 
    {"__metadata":{"type":"SP.Data.TestListItem"},"Title":"Title all1","Option1":"Updated 2"} 

Wenn ich diese URL in dem Post Mann laufen zu aktualisieren. etag 'entspricht nicht dem ETag-Wert des Objekts' \ "8 \" '"

Aber wenn ich den IF-MATCH-Wert im Header als * ändere, wird er korrekt aktualisiert. Warum bekomme ich einen Fehler, wenn ich Etag benutze?

Antwort

1

Sie verwenden das ETag falsch. Der ETag entspricht der Version des Artikels nicht ID des Artikels.

Die beste Möglichkeit, dies zu testen, besteht darin, eine get-Anforderung für das Element auszuführen und die Metadaten für die ETag-Eigenschaft anzuzeigen. Sie werden etwas ähnlich wie diese

{"__metadata":{"id":"Web/Lists(guid'xxxxxxxx')/Items(1)","uri":"https://site.sharepoint.com/site/subsite/_api/Web/Lists(guid'xxxxxx')/Items(1)","etag":"\"12\""

Hinweis die Formatierung des ETag sehen.

Ich kann mir keinen guten Grund vorstellen, den IF-MATCH für einen bestimmten ETag zu verwenden, wenn der Artikel aktualisiert wird. Der Anforderungsparameter für die ID sollte mehr als ausreichend sein. Das Überprüfen der Versionierung mit ETags wird benötigt, wenn Sie eine bestimmte Version eines Artikels PUT, MERGE oder DELETE möchten.

Überprüfen Sie diese Working with lists and list items with REST für weitere Informationen.