OK, the “loss” of the 404 error suggests the route is working correctly.
Also the fact that the values are set to blank indicates the update action is working but the $_POST values are blank (or seen as blank)
You have not actually detailed how the API call works (i assume you JSONdecode the payload) so difficult to comment why but try this configuration to ensure the values are “POSTed”
The solution you provided looks promising, and I’m eager to try it out. Due to current constraints, I won’t be able to implement it immediately, but I plan to do so at the earliest opportunity.