It is really up to how the API establishes the request type that should be used on each of its resources.
In an ideal world, you would:
- Use
POST
to create resources on resource collections. e.g. two requests of POST /v1/cars
would result in /v1/cars/1
and /v1/cars/2
being created.
- Use
PUT
to update the resource attributes, ideally when all the attributes are being changed even if they are keeping the same value. The request body (payload) should include all the attributes. PUT is idempotent, meaning that if you make two requests PUT /v1/cars/1
, with the same request body (payload), it will result in the car with identifier 1, updated with the attributes. N number of identical requests ends up in the same updated/modified entity representation.
- Use
PATCH
to perform partial modifications on the resource. SO if you were updating just a make and model on car 1, but not the price, then PATCH is ideal here as long as the API supports it.
Ultimately, in reality, to answer your question, whoever creates the API you are using (your back end), will decide what verbs should be used for what. So In reality, you will see it all wrong in many API's, things like POST used for upserts and updates, PUT for create, POST to perform GET's, it's up to them really.
If you have control over that backend your angular.js app relies on, try to stick as close as you can to those guidelines. But those are just guidelines, they don't need to be enforced and many times your business needs requires you to divert from them. So use PATCH for partial entity updates, PUT for full entity updates, or just PATCH for everything (partial/full). You'll find what works for you. And forget about that rule of percentages you wrote in your question, that just complicate things.
I personally use PATCH as updates, either partial of full. So I don't have to support on my API's two ways of updating a resource, so I don't support PUTs. But some of my colleagues use with their teams PUT as a PATCH. So they don't support PATCH. They do Partial updates with PUT which works for them and their customers as well.
Read more on PATCH, POST, PUT