PATCH bodies as application/merge-patch+json
Every API invents its own PATCH body, so clients have to guess whether an absent field means leave it alone or clear it. RFC 7396 already decided: absent means leave alone, null means delete the key, and the request says so with Content-Type: application/merge-patch+json.
{ "nickname": null, "timezone": "Europe/Istanbul" }That clears the nickname, sets the timezone, touches nothing else. Arrays are replaced whole, so removing one tag means sending the full list. When that gets common, the collection wants its own endpoint.
api-designhttp