reitit/examples/ring-integrant/src/example/server.clj
Daw-Ran Liou c00c299e13 Add integrant repl for better development experience
- Create `user` ns for REPL-driven development.
- Add entry point in `example.server` to start server in production.
2019-10-27 20:15:54 +02:00

26 lines
730 B
Clojure

(ns example.server
(:require
[reitit.ring :as ring]
[ring.adapter.jetty :as jetty]
[integrant.core :as ig]))
(def system-config
{:example/jetty {:port 3000
:join? false
:handler (ig/ref :example/handler)}
:example/handler {}})
(defmethod ig/init-key :example/jetty [_ {:keys [port join? handler]}]
(println "server running in port" port)
(jetty/run-jetty handler {:port port :join? join?}))
(defmethod ig/halt-key! :example/jetty [_ server]
(.stop server))
(defmethod ig/init-key :example/handler [_ _]
(ring/ring-handler
(ring/router
["/ping" {:get {:handler (fn [_] {:status 200 :body "pong!"})}}])))
(defn -main []
(ig/init system-config))