Итак, давайте представим, что есть некая сущность под названием «Продукты», и у вас есть REST API, включая POST, который создает продукт. Продукт имеет поле «ID», которое генерируется автоматически, и уникальное поле «Имя». Что вы делаете внутри метода:
- Подтвердите, что нет другого продукта с таким же именем. Таким образом, вы выбираете продукт из БД и сравниваете Имя с входным параметром
- Если этот продукт уже создан - вы возвращаете 400
- если продуктов с указанным именем нет - вы создаете объект и сохраняете его в БД
Проблема в том, что если есть 2 одновременных POST-запроса, вы получите ошибку. Должны ли мы использовать какой-то механизм блокировки здесь? Как это сделать правильно?