Fork me on GitHub
#clojure-russia
<
2016-06-13
>
Maxim02:06:15

Я вот использую clojure.spec для валидации входных параметров с клиента. Если параметры не валидны, то хочу вернуть "человеческие" сообщения об ошибках. Все как обычно. Но вот clojure.spec/explain-data, /expain-str возвращают, скажем так, "нечеловеческие" сообщения об ошибках, которые просто так и не отдашь на клиент. Что вы делали в таком случае?

Maxim02:06:14

Как из ::problems получали human error messages?

niwinz05:06:36

вот по етому я зделал http://funcool.github.io/struct/latest/ , штоби валидировать входые параметры от клиенте, spec ползуюсь в нутри, в бизнес логике...

niwinz05:06:27

я не вижу как спек мозно ползоватся дла форм валидации, он просто не для этого зделан...

niwinz05:06:17

дла клиента валидации нужно human errors, coersion, i18n, ... но спек он дла валидации внутреней апи... где human readable messages не нада клиенту отправлатя а нада видить кде ломается функция и почему...

andmed09:06:56

хехе. решил вчерашнюю задачку с varargs на основе родных макросов. (fn [& args] (and (not (reduce #(and %1 %2) args)) (reduce #(or %1 %2) args))) все-равно длиннее чем с some конечно..

fxposter14:06:50

я в #C1B1BB2Q3 спрашивал уже, но внятного ответа не получил - я так понимаю, со спеком все же можно делать не “чистые” валидаторы. т.е. сходить по http чтобы провалидировать поле какое-нибудь

niwinz15:06:54

можно да, но то ни для этого зделан...

nicola17:06:38

Мы в свое время упоролись и для schema сделали human readable errors

fxposter17:06:40

не сделан

fxposter17:06:50

у меня просто есть пара задач

fxposter17:06:56

которые вроде бы как по валидации

fxposter17:06:07

но ни одна библиотека не подходит 🙂