Pepperi API Design
Search…
Generic Resource
PEPPERI NOTIFICATION SERVICE
Actions Queue
CPI Node
TODO training
Powered By GitBook
Start Sync Application's Data Job (Async)
Async Job
The sync function get the local data updates and merge them into the remote server data. It returns the sync UUID and two URLs for polling 1) LocalDataUpdatesResponseURL (optional) - will conatin the respond to the data update sent from the local device. If there was no data sent from the local device, no URL will be returned 2) RemoteDataUpdatesResponseURL - will conatin the data that was changed on the remote server since the last sync time. It will include the data that was sent with changes done during the "merge"
Sync is a blocking function per DeviceExternalID, only one sync can be processed in parallel. All other sync requests will wait in queue.
Critical Note: For performance considerations only the latest sync request will be processed from the queue This is done because of the assumption that the client device will always send the changed data until they will process the LocalDataUpdatesResponseURL. For example, if there are 3 sync called one after the other the first will start to process while the second and third will wait in queue. once the first complete the second will be skipped and the third will be processed
You must wait for the sync request to return before creating another request using the same ClientDBUUID
LocalDataUpdate and LocalDataUpdateURL are mutually exclusive, URL in LocalDataUpdateURL should be used when data is bigger then 500KB, or the convert of the data from LocalDataUpdate to LocalDataUpdateURL will happen on the server side before the Sync will be sent.
post
https://api.pepperi.com
/v1.0/application/sync
Start a sync process
Body object:
1
{
2
"LocalDataUpdates" : { },// mutually exclusive with LocalDataUpdatesURL
3
"LocalDataUpdatesURL": "", // mutually exclusive with LocalDataUpdates
4
"LastSyncDateTime" :"",
5
"DeviceExternalID" : "",
6
"CPIVersion" : "",
7
"TimeZoneDiff" :
8
"Locale" : "",
9
"BrandedAppID" : "", why? // for log purposes
10
"UserFullName" : ""
11
"SoftwareVersion" : "",
12
"SourceType" : "",
13
"DeviceModel" : "",
14
"DeviceName" : "",
15
"DeviceScreenSize" : "",
16
"SystemName" : "",
17
"ClientDBUUID" :""
18
}
Copied!
Last updated Sun Aug 11 2019 06:28:59 GMT+0000 (UTC)
Last modified 11mo ago
Copy link