Skip to content

Instantly share code, notes, and snippets.

@borkdude
Last active November 8, 2024 01:22
Show Gist options
  • Save borkdude/1627f39d072ea05557a324faf5054cf3 to your computer and use it in GitHub Desktop.
Save borkdude/1627f39d072ea05557a324faf5054cf3 to your computer and use it in GitHub Desktop.
Small ring router using core.mach in babashka
(require '[clojure.core.match :refer [match]]
'[clojure.string :as str]
'[hiccup2.core :refer [html]]
'[org.httpkit.server :as server])
(defn router [req]
(let [paths (vec (rest (str/split (:uri req) #"/")))]
(match [(:request-method req) paths]
[:get ["users" id]] {:body (str (html [:div id]))}
:else {:body (str (html [:html "Welcome!"]))})))
(server/run-server router {:port 8090})
@(promise)
@frankitox
Copy link

There's a little bug if (:uri req) is "/". You can rewrite it as (vec (rest (str/split "/" #"/"))).

@borkdude
Copy link
Author

Fixed, thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment