товара, передавать его напрямую в создание записи и на ошибку констрейта просто 500 отдать или все же сделать запрос на то существует ли категория?
HTTP 500 это когда что-то пошло не так... Лучше вернуть что-то другое (например 409 Conflict)
не ну если валидировать то это 422
> сделать запрос на то существует ли категория? Между этим запросом и вставкой уже кто-то может добавить, лучше обрабатывать саму ошибку от БД
err = sps.db.Create(product).Error if err != nil { if strings.Contains(err.Error(), "foreign key constraint fails") { return nil, errors.New("category not found") } return nil, err } норм?
а имени самого поля в ошибке нет??
Error 1452: Cannot add or update a child row: a foreign key constraint fails (`msgo`.`products`, CONSTRAINT `fk_products_product_category` FOREIGN KEY (`product_category_id`) REFERENCES `product_categories` (`id`))
Если делать в лоб, то будет DoS
а причем тут DoS?
Запрос на существовании категории.
Обсуждают сегодня