170 похожих чатов

Привет всем, за советом по именованию. Какой лучше отдать exception пользователю,

если он пытается создать запись, которая уже существует по двум полям?

В сервисном слое находим дубликат, бросаем исключение, а вот какое исключение должно быть - вопрос? Можно бросать 403 код и какой-то текст в духе <resource> already exists by field1 and field2, но такое себе

RESTful API only.

Через полгода устроил тотальный рефакторинг крупного проекта, решил поставить под сомнение такую простую вещь

6 ответов

12 просмотров

Кастомные коды сделай

я бы свалил бы это в валидацию. 422 обычный и перечисление полей, которые не уникальны

Эльдарка- Автор вопроса

1 - такая проверка у нас была в сервисе 2 - попробовал сделать в форм реквесте через валидацию, но мне совсем не нравится визуально эта портянка с Rule::unique Думаю, что из сервиса не стоит убирать проверку, потому что могут быть вызову из сидеров, консольных команд и тинкера, а валидация реквеста слишком высоко. Вопрос меняется: можно ли искусственно вызвать ValidationFailed, чтобы он указывал поле errors корректно, без костылей?

Эльдарка
1 - такая проверка у нас была в сервисе 2 - попроб...

я думал речь про контроллер, а не сервис ) контроллер нет смысла вызывать из сидера или тинкера, так что в моём случае правила в реквесте — самое оно, тем более что твой Rule::unique можно обернуть в своё правило аля NeedUniqueField(['name', 'url']), как пример. про ValidationFailed и костыли непонятно, что значит корректно? добавить в валидатор свою ошибку?

Эльдарка- Автор вопроса
Trin Zotoff
я думал речь про контроллер, а не сервис ) контрол...

та не контроллер вызывать же из сидера, а метод create в сервисе. Если перенести проверку в реквест, то логично, что из сервиса её лучше убрать для оптимизации, но тогда сидер или кто-то с тинкера может вызвать метод в сервисе, в котором не будет проверки - случится ошибка метод в сервисе теряет защиту. Я ищу способ оставить защиту в сервисе, но чтобы она бросала правильное исключение, которое даст 422 код

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта