Per un po 'di tempo ho usato PUT o PATCH per aggiornare una risorsa API REST. Dopo aver usato molte chiamate PUT / PATCH ho notato che l'aggiornamento poteva essere fatto anche con il POST.
Ecco un esempio semplificato che spero possa spiegare la situazione. C'è un endpoint / api / automobili / concessionari / 1 con una risorsa
{
"id": 1,
"dealer_name": "Audi Atlanta",
"year_opened": 2010,
"contact_persons":
[
{
"contact_person_type": "main_contact",
"contact_person_name": "Mike Smith"
},
{
"contact_person_type": "billing_contact",
"contact_person_name": "Luke Johnson"
}
]
}
Sarebbe contro le linee guida dell'API REST se aggiorno questa risorsa con POST come
{
"contact_to_change": "main_contact",
"contact_name": "John Smith"
}
invece di PATCH con
{
"id": 1,
"contact_persons":
[
{
"contact_person_type": "main_contact",
"contact_person_name": "Mike Smith"
}
]
}
o invece di aggiornamento completo delle risorse con PUT
Si noti come la struttura del carico utile è completamente diversa dalla struttura della risorsa stessa. Ci sono casi in cui questo è molto più facile quindi andare con un aggiornamento delle risorse raw seguendo la stessa struttura del corpo.
Potrebbe in questo modo portare qualche problema che non vedo al momento?