A PUT
запрос должен заменить то, что было на сервере по указанному uri.
Так что, если ресурс в uri уже был пуст, и новый ресурс, который был помещентакже пусто, ничего не изменилось, но все равно успешно, поэтому 200 OK
нормально.
Если ресурс не существует и вы создаете новый 0-байтовый ресурс, 201 Created
может быть более подходящим.
Если ресурс существовал, но он не был пустым, и вы отправили пустой запрос PUT
, он должен заменить существующий ресурс пустым.
Вот где вы идете не так, потому что PUT
не должен использоваться для "upsert" для каждой записи, как вы делаете.
Если заявленный вами запрос PUT был семантически правильным, он должен уничтожить всесуществующие записи привязаны к этому местоположению.
Что вы, вероятно, хотите, это PATCH
или POST
.