From d69f14f90610611e77d29206df5e8fbd89888537 Mon Sep 17 00:00:00 2001 From: Travis Shears Date: Thu, 5 Jun 2025 10:07:19 +0200 Subject: [PATCH] switch from compojure to reitit --- bruno/CodeSnippets/bruno.json | 9 +++++++++ bruno/CodeSnippets/ping.bru | 11 ++++++++++ deps.edn | 4 ++-- src/snippets/api.clj | 38 ++++++++++++++++++++++++++--------- 4 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 bruno/CodeSnippets/bruno.json create mode 100644 bruno/CodeSnippets/ping.bru diff --git a/bruno/CodeSnippets/bruno.json b/bruno/CodeSnippets/bruno.json new file mode 100644 index 0000000..6c7e799 --- /dev/null +++ b/bruno/CodeSnippets/bruno.json @@ -0,0 +1,9 @@ +{ + "version": "1", + "name": "CodeSnippets", + "type": "collection", + "ignore": [ + "node_modules", + ".git" + ] +} \ No newline at end of file diff --git a/bruno/CodeSnippets/ping.bru b/bruno/CodeSnippets/ping.bru new file mode 100644 index 0000000..4808b87 --- /dev/null +++ b/bruno/CodeSnippets/ping.bru @@ -0,0 +1,11 @@ +meta { + name: ping + type: http + seq: 1 +} + +get { + url: http://localhost:3000/api/ping + body: none + auth: none +} diff --git a/deps.edn b/deps.edn index e496025..4e40983 100644 --- a/deps.edn +++ b/deps.edn @@ -5,10 +5,10 @@ org.slf4j/slf4j-simple {:mvn/version "2.0.16"} ;; routing: - compojure/compojure {:mvn/version "1.7.1"} + metosin/reitit {:mvn/version "0.9.1"} ;; convenient package of "default" middleware: - ring/ring-defaults {:mvn/version "0.5.0"} + ;; ring/ring-defaults {:mvn/version "0.5.0"} org.clojure/clojure {:mvn/version "1.12.1"}}} diff --git a/src/snippets/api.clj b/src/snippets/api.clj index 5ea827e..db92d46 100644 --- a/src/snippets/api.clj +++ b/src/snippets/api.clj @@ -1,16 +1,36 @@ (ns snippets.api - (:require [compojure.core :refer [defroutes GET]] - [compojure.route :as route] - [ring.adapter.jetty :as jetty] - [ring.middleware.defaults :refer [wrap-defaults site-defaults]])) + (:require + [ring.adapter.jetty :as jetty] + [reitit.ring :as rr])) -(defroutes app-routes - (GET "/" [] "Hello World") - (route/not-found "Not Found")) +(defn handler [_] + {:status 200, :body "ok"}) + +(defn handle-not-found [_] + {:status 404, :body "not found yo"}) + +(defn wrap [handler id] + (fn [request] + (update (handler request) :wrap (fnil conj '()) id))) (def app - ;; use #' prefix for REPL-friendly code -- see note below - (wrap-defaults #'app-routes site-defaults)) + (rr/ring-handler + (rr/router + ["/api" {:middleware [[wrap :api]]} + ["/ping" {:get handler + :name ::ping}] + ["/admin" {:middleware [[wrap :admin]]} + ["/users" {:get handler + :post handler}]]]) + (rr/create-default-handler))) + +;; (defroutes app-routes +;; (GET "/" [] "Hello World") +;; (route/not-found "Not Found")) + +;; (def app +;; ;; use #' prefix for REPL-friendly code -- see note below +;; (wrap-defaults #'app-routes site-defaults)) (defn -main [] (jetty/run-jetty #'app {:port 3000}))