You only need GET (and its little brother HEAD) and POST. Whether operations on a resource are idempotent or not is something that you might like to change. Send all operations through POST which will apply business logic and don’t use PUT or DELETE. Simple.