This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-07-20
Channels
- # aleph (4)
- # beginners (47)
- # boot (22)
- # cider (7)
- # clara (1)
- # cljs-dev (8)
- # cljsrn (21)
- # clojure (180)
- # clojure-argentina (13)
- # clojure-gamedev (1)
- # clojure-italy (5)
- # clojure-poland (4)
- # clojure-russia (17)
- # clojure-spec (19)
- # clojure-uk (33)
- # clojurescript (107)
- # cursive (61)
- # data-science (1)
- # datomic (7)
- # emacs (69)
- # euroclojure (1)
- # graphql (1)
- # hoplon (11)
- # immutant (43)
- # jobs (1)
- # leiningen (3)
- # off-topic (5)
- # om (10)
- # onyx (2)
- # parinfer (52)
- # pedestal (11)
- # re-frame (31)
- # reagent (23)
- # ring-swagger (3)
- # schema (2)
- # specter (7)
- # unrepl (9)
@ikitommi I found the diff and it appeared that I am using nginx-clojure embed webserver https://github.com/nginx-clojure/nginx-clojure
and in this case the schema validation became broken, try:
create new proj: lein new compojure-api c2
replace project.clj
with
(defproject c2 "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.8.0"]
[metosin/compojure-api "1.1.10"]]
:ring {:handler c2.handler/app}
:uberjar-name "server.jar"
:profiles {:dev {:dependencies [[javax.servlet/javax.servlet-api "3.1.0"]
[nginx-clojure/nginx-clojure-embed "0.4.5"]]
:main c2.handler
:plugins [[lein-ring "0.10.0"]]}})
replace handler.clj
with
(ns c2.handler
(:require [compojure.api.sweet :refer :all]
[ring.util.http-response :refer :all]
[schema.core :as s]
[nginx.clojure.embed :as embed]))
(s/defschema Collection
{:id s/Int
:name s/Str})
(s/defschema Tag
{:id s/Int
:tag s/Str})
(def app
(api
(swagger-routes)
(context "/:storeId" []
(GET "/collections" {:as request params :params}
:summary "Get Collections"
:path-params [storeId :- s/Str]
:return [Collection]
(ok [{:id 101 :name "My Collection"}]))
(GET "/tags" {:as request params :params}
:summary "Get Tags"
:path-params [storeId :- s/Str]
:return [Tag]
(ok [{:id 101 :tag "My Collection"}])))))
(defn start-server
"Run an emebed nginx-clojure for debug/test usage."
[dev? port]
(embed/run-server app {:port port}))
(defn -main
[& args]
(let [dev? (empty? args)
port (or (first args) 8080)
port (start-server dev? port)]
(when-not (System/getProperty "java.awt.headless")
(try
(.browse (java.awt.Desktop/getDesktop) (java.net.URI. (str "" port "/")))
(catch java.awt.HeadlessException _)))))
Now if you run it with lein with-profile dev run
You can reproduce my error