This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-02-05
Channels
- # announcements (17)
- # architecture (5)
- # babashka (12)
- # beginners (155)
- # calva (18)
- # chlorine-clover (2)
- # cider (57)
- # circleci (2)
- # clojure (151)
- # clojure-europe (4)
- # clojure-gamedev (20)
- # clojure-italy (18)
- # clojure-nl (4)
- # clojure-norway (3)
- # clojure-spec (8)
- # clojure-uk (95)
- # clojurescript (70)
- # core-async (68)
- # css (3)
- # data-science (13)
- # datascript (1)
- # datomic (16)
- # docker (2)
- # figwheel-main (41)
- # fulcro (34)
- # graalvm (6)
- # graphql (7)
- # jobs (14)
- # joker (2)
- # kaocha (1)
- # leiningen (2)
- # malli (3)
- # midje (2)
- # overtone (1)
- # reagent (8)
- # reitit (6)
- # ring-swagger (1)
- # schema (2)
- # shadow-cljs (6)
- # spacemacs (3)
- # specter (5)
- # timbre (3)
- # uncomplicate (1)
@ikitommi i tried to use st/spec
instead of s/conform
(s/def ::user-ids
(st/spec
{:spec (s/coll-of ::corespec/user-id)
:description "comma separated list of user-ids"
:json-schema/type {:type "string"}
:json-schema/example "1,2,3"
:decode/string #(cs/split %2 #",")
:encode/string #(cs/join %2 ",")}))
(st/coerce ::user-ids "1,2" st/string-transformer)
=> [1 2]
but compojure-api doesnt seem to be coercing….
(context "/v1" []
:coercion :spec
(GET "/events" []
:coercion :spec
:query-params [user-ids :- ::user-ids]
(println "foo" (pr-str {} user-ids 30)))))
GET /v1/events?user-ids=4723 HTTP/1.1
{
"spec": "(spec-tools.core/spec {:spec (clojure.spec.alpha/keys :req-un [:spec$584/user-ids]), :type :map, :leaf? false})",
"problems": [
{
"path": [
"user-ids"
],
"pred": "clojure.core/coll?",
"val": "4723",
"via": [
"spec$584/user-ids"
],
"in": [
"user-ids"
]
}
],
"type": "compojure.api.exception/request-validation",
"coercion": "spec",
"value": {
"user-ids": "4723"
},
"in": [
"request",
"query-params"
]
}
am i doing something wrong or is this not supported?