我希望能够为这些模式中的验证错误生成用户友好或指定自定义错误消息:
(def Uuid (s/constrained String #(re-matches #"^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" (name %))))
(def FirstName s/Str)
(def LastName s/Str)
(s/defschema Person {(s/required-key :id) Uuid,
(s/required-key :first-name) FirstName,
(s/required-key :last-name) LastName})
有效架构:
{
:uuid "e143499c-1257-41e4-b951-c9e586994ff9"
:first-name "john"
:last-name "smith"
}
无效的架构:
{
:uuid ""
:first-name nil
:last-name nil
}
无效架构 - 错误:
{
"id" : "(not (app.person/fn--4881 \"\"))",
"first-name" : "(not (instance? java.lang.String nil))"
"last-name" : "(not (instance? java.lang.String nil))"
}
我希望能够生成一些对非程序员来说更具可读性的东西,例如:
{
"id" : "invalid uuid",
"first-name" : "must be a string"
"last-name" : "must be a string"
}