It's the closest API call I've seen to core REST functionality, where you download a whole record, manipulate it locally, then upload the whole record when you're done. The big difference still remaining is all other APIs I've used which claim to be RESTful use different HTTP verbs rather than different URLs for CRUD operations:
- Create - POST a whole object
- Read - GET a URL
- Update - PUT with a whole object to fully overwrite the server-side object, or PATCH with only part of the object to update only those fields
- Delete - DELETE a URL with the object identifier
Almost all the other APIs I've used which claim to be RESTful put the object identifier in the path of the URL. To operate on object 1cab76a9-261d-4add-b988-5856c4c5a909, you would make calls with those verbs to <server>/objects/1cab76a9-261d-4add-b988-5856c4c5a909. It separates structure of data from operations on the contents of that structure.
Check Point's management API uses POST for everything. Just about everywhere else, it feels more like remote procedure calls rather than state transfers.
This is the closest to a RESTful update call, where you tell the server "Make the object assume this state."