Both sides previous revisionPrevious revisionNext revision | Previous revision |
dev:web_api:v3:write_requests [2019/12/02 16:40] – dstillman | dev:web_api:v3:write_requests [2021/06/02 16:30] (current) – [Creating Multiple Objects] dstillman |
---|
| |
PATCH <userOrGroupPrefix>/items/<itemKey> | PATCH <userOrGroupPrefix>/items/<itemKey> |
If-Unmodified-Since-Version: <version> | If-Unmodified-Since-Version: <last item version> |
| |
<code>{ | <code>{ |
=== Both PUT and PATCH === | === Both PUT and PATCH === |
| |
Notes and attachments can be made child items by assigning the parent item's key to the ''parentItem'' property. If parent and child items are created in the same ''POST'' request, the child items must appear after the parent item in the array of items. | Notes and attachments can be made child items by assigning the parent item's key to the ''parentItem'' property. If parent and child items are created in the same ''POST'' request, the child items must appear after the parent item in the array of items, with a locally created [[#object_keys|item key]]. |
| |
The item's current version number is included in the ''version'' JSON property, as well as in the ''Last-Modified-Version'' header of single-item requests. ''PUT'' and ''PATCH'' requests must include the item's current version number in either the ''version'' property or the ''If-Unmodified-Since-Version'' header. (''version'' is included in responses from the API, so clients that simply modify the editable data do not need to bother with a version header.) If the item has been changed on the server since the item was retrieved, the write request will be rejected with a ''412 Precondition Failed'' error, and the most recent version of the item will have to be retrieved from the server before changes can be made. | The item's current version number is included in the ''version'' JSON property, as well as in the ''Last-Modified-Version'' header of single-item requests. ''PUT'' and ''PATCH'' requests must include the item's current version number in either the ''version'' property or the ''If-Unmodified-Since-Version'' header. (''version'' is included in responses from the API, so clients that simply modify the editable data do not need to bother with a version header.) If the item has been changed on the server since the item was retrieved, the write request will be rejected with a ''412 Precondition Failed'' error, and the most recent version of the item will have to be retrieved from the server before changes can be made. See [[syncing#version_numbers|Version Numbers]] for more on library and object versioning. |
| |
^ Common responses ^^ | ^ Common responses ^^ |
| |
DELETE <userOrGroupPrefix>/items/<itemKey> | DELETE <userOrGroupPrefix>/items/<itemKey> |
If-Unmodified-Since-Version: <last known item version> | If-Unmodified-Since-Version: <last item version> |
| |
^ Common responses ^^ | ^ Common responses ^^ |
| |
DELETE <userOrGroupPrefix>/items?itemKey=<key>,<key>,<key> | DELETE <userOrGroupPrefix>/items?itemKey=<key>,<key>,<key> |
If-Unmodified-Since-Version: <version> | If-Unmodified-Since-Version: <last library version> |
| |
204 No Content | 204 No Content |
Last-Modified-Version: <version> | Last-Modified-Version: <library version> |
| |
| |
| |
DELETE <userOrGroupPrefix>/collections/<collectionKey> | DELETE <userOrGroupPrefix>/collections/<collectionKey> |
If-Unmodified-Since-Version: <last-retrieved-version> | If-Unmodified-Since-Version: <last collection version> |
| |
^ Common responses ^^ | ^ Common responses ^^ |
| |
DELETE <userOrGroupPrefix>/collections?collectionKey=<collectionKey>,<collectionKey>,<collectionKey> | DELETE <userOrGroupPrefix>/collections?collectionKey=<collectionKey>,<collectionKey>,<collectionKey> |
If-Unmodified-Since-Version: <version> | If-Unmodified-Since-Version: <last library version> |
| |
204 No Content | 204 No Content |
Last-Modified-Version: <version> | Last-Modified-Version: <library version> |
| |
| |
| |
DELETE <userOrGroupPrefix>/searches?searchKey=<searchKey>,<searchKey>,<searchKey> | DELETE <userOrGroupPrefix>/searches?searchKey=<searchKey>,<searchKey>,<searchKey> |
If-Unmodified-Since-Version: <version> | If-Unmodified-Since-Version: <last library version> |
| |
204 No Content | 204 No Content |
Last-Modified-Version: <version> | Last-Modified-Version: <library version> |
| |
^ Common responses ^^ | ^ Common responses ^^ |
| |
DELETE <userOrGroupPrefix>/tags?tag=<URL-encoded tag 1> || <URL-encoded tag 2> || <URL-encoded tag 3> | DELETE <userOrGroupPrefix>/tags?tag=<URL-encoded tag 1> || <URL-encoded tag 2> || <URL-encoded tag 3> |
If-Unmodified-Since-Version: <version> | If-Unmodified-Since-Version: <last library version> |
| |
204 No Content | 204 No Content |
Last-Modified-Version: <version> | Last-Modified-Version: <library version> |
| |
| |
]</code> | ]</code> |
| |
For syncing objects with predetermined keys, an object key can also be provided with new objects. See the [[Syncing]] documentation for more information. | For [[syncing]] objects with predetermined keys, an [[#object_keys|object key]] can also be provided with new objects. |
| |
''200'' response: | ''200'' response: |
| |
Content-Type: application/json | Content-Type: application/json |
Last-Modified-Version: <version> | Last-Modified-Version: <library version> |
| |
<code>{ | <code>{ |
| |
Note that ''POST'' follows ''PATCH'' semantics, meaning that any properties not specified will be left untouched on the server. To erase an existing property, include it with an empty string or ''false'' as the value. | Note that ''POST'' follows ''PATCH'' semantics, meaning that any properties not specified will be left untouched on the server. To erase an existing property, include it with an empty string or ''false'' as the value. |
| |
| ===== Object Keys ===== |
| |
| While the server will automatically generate valid keys for uploaded objects, in some situations, such as when [[syncing]] or creating a parent and child item in the same request, it may be desirable or necessary to create object keys locally. |
| |
| Local object keys should conform to the pattern ''/[23456789ABCDEFGHIJKLMNPQRSTUVWXYZ]{8}/''. |
| |
===== Zotero-Write-Token ===== | ===== Zotero-Write-Token ===== |