Start here. This is the direct spoken answer to practice first.
Why this question matters
Update endpoints become fragile when clients and servers disagree about what an omitted property means. PUT and PATCH can both update data, but they communicate different representation semantics.
PUT sends a representation intended to create or replace the state of the target resource, so it is naturally idempotent when the same representation is repeated. PATCH applies a partial modification described by a patch document. I use PUT when the client owns a complete replaceable representation and PATCH when partial updates are an explicit product need. Omitted replaceable fields in a PUT become absent or reset according to the resource contract; silently retaining them makes the endpoint behave like an ambiguous patch. The contract must also name the accepted patch media type.