Perform several operations in a single API call.
A batch operation performs several API calls in a single call.
Batch API Calls Count
When performing a batch operation, the actual number of API calls is the number of calls inside the batch operation. For example, if a batch operation updates 5 objects, it will count as 5 platform API calls.
To execute a batch operation send the following request:
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Appery-Database-Id: <database_id>" \
[-H "X-Appery-Session-Token: <session_token>" \]
-d "<operations_array>" \
https://api.appery.io/rest/1/db/batch
operations_array is a JSON array of objects containing batch operations description. For example:
[
{
"method": "<method>",
"collection": "<collection_name>",
"_id": "<object_id>",
"data": <object_data>
},
{
"method": "<method>",
"collection": "<collection_name>",
"_id": "<object_id>",
"data": <object_data>
},
...
]
Parameer | Description | Required |
---|---|---|
method | GET, POST, PUT or DELETE. | Yes. |
collection_name | Database collection name. | Yes |
object_id | Object ID to perform the operation on. | Required for GET, PUT or DELETE. |
object_data | Object data for the operation. | Required for POST or PUT. |
The database returns HTTP 200 OK status and JSON array representing results for the operations requested.
If an operation fails on a specific objects, operations on other objects will continue.
The position of the operation result item is the same as the position of the operation description in the request. For example:
[
{
"<operation_status>": <operation_result>
},
{
"<operation_status>": <operation_result>
},
...
]
Parameter | Description |
---|---|
operation_status | success or error. |
operation_result | JSON object representing operation response which is usually returned by a direct service invocation (see Collections REST API for more details), including error responses. |
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Appery-Database-Id: 58a59358975a4fa00e0ff50f" \
https://api.appery.io/rest/1/db/batch
-d
"[
{
"method": "post",
"collection": "Labels",
"data": {"name": "nick"}
},
{
"method": "put",
"collection": "Labels",
"_id": "58a59386975a4fa00e0ff513",
"data": {"name": "max updated"}
},
{
"method": "delete",
"collection": "Labels",
"_id": "58a59381975a4fa00e0ff512"
},
{
"method": "get",
"collection": "Labels",
"_id": "58a59386975a4fa00e0ff513"
},
{
"method": "put",
"collection": "Labels",
"_id": "000000000000000000000000",
"data": {"name": "unexisting label with _id 000000000000000000000000"}
}
]"
[
{
"success": {
"_id": "58a5962d0a975a799b278abd",
"_createdAt": "2017-02-16 12:08:13.327"
}
},
{
"success": {
"_updatedAt": "2017-02-16 12:08:13.337"
}
},
{
"success": {}
},
{
"success": {
"_id": "58a59386975a4fa00e0ff513",
"name": "max updated",
"_createdAt": "2017-02-16 11:56:54.725",
"_updatedAt": "2017-02-16 12:08:13.337"
}
},
{
"error": {
"code": "DBSU205",
"description": "Collection 'Labels' doesn't contain object with id 000000000000000000000000."
}
}
]