Prismatic/schema을 사용하여 함수의 유효성을 검사하는 방법에 대한 간단한 질문이 있습니다. 나는 하나의 키가 맵에 대한 스키마를 가지고,의 값이 (부작용에 사용)의 단일 인수로 Bar
스키마를 취하고 무엇을 반환하는 함수입니다 :Clojure에서 프리즘/스키마를 사용하여 함수 유효성 검사
(require '[schema.core :as s])
(def Bar {:baz s/Int})
(def Action :???)
(def Foo {:action Action})
질문은, Action
을 어떻게 정의합니까? 나는 이것을 시도했다 :
(require '[schema.macros :as sm])
(def Action (sm/=> s/Any Bar))
이 유망 보이지만, 나는 그것이 유효성 검사에 실패한 얻을 수 없습니다 : 내가 잘못 여기서 뭐하는 거지
(s/explain Action)
;=> (=> Any {:baz Int})
;; This should fail
(s/validate Foo {:action :anything-goes})
;=> {:action :anything-goes}
?
나는 docs과 core_test의 테스트를 읽었지만 어떻게해야하는지 알 수 없습니다.
OK. 미래에 시행 될 수있는 기술 코드가 많은 가치를 지니고 있기 때문에 어쨌든 스키마를 만들면 좋습니다. 코드를 자세히 읽어 주셔서 감사합니다! –