PUT is supposed to be idempotent? So an "increment" or "reverse" request should technically be a POST?
Or does the idempoten-cy apply only to the response from the server, and not the state of the data on the server?
Or does the idempoten-cy apply only to the response from the server, and not the state of the data on the server?
Absolutely. User-agents are allowed to retry PUTs transparently -- it's only for POSTs that they're supposed to put up a "are you sure you want to re-submit this form? Bad stuff might happen" dialog.