Как проверить ошибку ValidationError, возникшую во время приведения схемы Prismatic?

В результате создания схемы Scheer Coercer, а затем пытаясь принудить набор данных, я получаю в результате:

#schema.utils.ErrorContainer{:error #<ValidationError schema.utils.ValidationError@2abfe6ca>}

Как получить объяснение того, что является фактической ошибкой проверки?

1 ответ

Вы можете найти определение ValidationError введите здесь (так как вы, кажется, используете Clojure на JVM, я удалил #+cljs выражения):

(deftype ValidationError [schema value expectation-delay fail-explanation])

И определение для ErrorContainer запишите здесь:

(defrecord ErrorContainer [error])

Таким образом, чтобы получить больше информации об ошибке, вы можете просто получить доступ к любому из полей внутреннего ValidationError:

(defn validation-error-details [error]
  (let [values (juxt #(.schema %) 
                     #(.value %)
                     #(.expectation-delay %)
                     #(.fail-explanation %))]
    (->> error :error values)))

;; Usage
(validation-error-details error) ; where error holds the value you posted
Другие вопросы по тегам