Это следующий вопрос к моей предыдущей публикации на HTTP-команда PUT или POST при вызове конечной точки API, которая выполняет как UPDATE, так и INSERT?
У меня есть RESTful Web API (написанный на ASP .Net Core 2.1), который получает «журнал изменений» от клиентского приложения-потребителя. Это класс JSON, содержащий все изменения в базе данных, которые были выполнены в клиентском приложении, когда оно работало в автономном режиме. После того, как клиентское приложение переходит в онлайн, оно синхронизирует свою базу данных с онлайн-базой данных, отправляя API все изменения, произошедшие с момента последней синхронизации. Таким образом, он отправляет API набор изменений / журнал изменений с кучей списков UPDATE, INSERT и DELETE для различных таблиц / объектов.
Что касается API, я фактически ничего не удаляю из действующей базы данных - я просто помечаю вещи как удаленные (поэтому я устанавливаю логическое поле в значение true, то есть удалено = true). Таким образом, технически API выполняет только ВСТАВКИ и ОБНОВЛЕНИЯ в базе данных.
Какой код состояния должен возвращать метод действия API после успешного завершения? Поскольку он выполняет комбинацию INSERTS и UPDATES, должен ли он возвращать 201 Created? Или просто 200 ок? Или 200 OK, если выполнялись только обновления, иначе 201, если выполнялись какие-либо вставки? Кроме того, в теле ответа, поскольку я на самом деле не планирую возвращать какие-либо идентификаторы или объекты в теле (поскольку несколько объектов были бы обновлены и вставлены), я хотел бы вернуть просто текст, сообщающий, сколько объектов было обновлено, как многие были вставлены и сколько были помечены как удаленные. Возможно ли это или даже хорошая идея?
Спасибо