I have a RESTful Web API (written in ASP .Net Core 2.1) which receives a "change-log" from the consuming client app. This is a JSON class containing all the modifications to the database that were performed on the client app while it was working in offline mode. Once the client app goes online, it synchronizes its database with an online/live database by sending the API all the changes that have happened since the last sync. So it sends the API a change-set/change-log with a bunch of UPDATE, INSERT and DELETE lists for the various tables/objects.
On the API side, I don't actually delete anything from the live database - I simply flag things as deleted (so I set a boolean field to true, i.e. deleted
= true). So technically, the API only performs INSERTS and UPDATES on the database.
Now I am at odds on how the consuming client should call this "synchronize" endpoint of the API. Should it call it as a POST or as a PUT request? Since the API is actually performing both UPDATES and INSERTS... Which HTTP verb is more appropriate? Does it even matter?