На самом деле я сделал это чтобы не писать много кода в чате. В большой спеке не для примера data тоже отличается. Мне интересно есть ли какие-то удобные способы определения ошибки потому что при например (s/explain-data ::req {:a 1})
Вывод:
{:problems
({:path [:add],
:pred
(clojure.core/fn
[%]
(clojure.core/contains? % :method)),
:val {:a 1},
:via [:server.spec/req :server.spec/add],
:in []}
{:path [:add],
:pred
(clojure.core/fn
[%]
(clojure.core/contains? % :data)),
:val {:a 1},
:via [:server.spec/req :server.spec/add],
:in []}
{:path [:delete],
:pred
(clojure.core/fn
[%]
(clojure.core/contains? % :method)),
:val {:a 1},
:via [:server.spec/req :server.spec/delete],
:in []}
{:path [:delete],
:pred
(clojure.core/fn
[%]
(clojure.core/contains? % :data)),
:val {:a 1},
:via [:server.spec/req :server.spec/delete],
:in []}),
:spec :server.spec/req,
:value {:a 1}}
Меня смущает что здесь в списке :path
повторяется по нескольку раз