mirror of
https://github.com/edufeed-org/amb-api.git
synced 2025-12-09 16:24:33 +00:00
web server is basically working
This commit is contained in:
commit
0b6513bae2
5 changed files with 100 additions and 0 deletions
30
.gitignore
vendored
Normal file
30
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
.calva/output-window/
|
||||
.calva/repl.calva-repl
|
||||
.classpath
|
||||
.clj-kondo/.cache
|
||||
.cpcache
|
||||
.eastwood
|
||||
.factorypath
|
||||
.hg/
|
||||
.hgignore
|
||||
.java-version
|
||||
.lein-*
|
||||
.lsp/.cache
|
||||
.lsp/sqlite.db
|
||||
.nrepl-history
|
||||
.nrepl-port
|
||||
.portal/vs-code.edn
|
||||
.project
|
||||
.rebel_readline_history
|
||||
.settings
|
||||
.socket-repl-port
|
||||
.sw*
|
||||
.vscode
|
||||
*.class
|
||||
*.jar
|
||||
*.swp
|
||||
*~
|
||||
/checkouts
|
||||
/classes
|
||||
/target
|
||||
|
||||
14
deps.edn
Normal file
14
deps.edn
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{:deps {org.clojure/clojure {:mvn/version "1.12.0"}
|
||||
com.stuartsierra/component {:mvn/version "1.1.0"}
|
||||
io.pedestal/pedestal.service {:mvn/version "0.7.2"}
|
||||
io.pedestal/pedestal.jetty {:mvn/version "0.7.1"}
|
||||
org.slf4j/slf4j-simple {:mvn/version "2.0.10"}
|
||||
net.clojars.laoc/nostr {:local/root "/home/laoc/coding/nostr-clj"}}
|
||||
|
||||
:aliases
|
||||
{:nrepl
|
||||
{:extra-deps
|
||||
{nrepl/nrepl {:mvn/version "1.3.0"}}
|
||||
:main-opts ["-m" "nrepl.cmdline"
|
||||
"-b" "0.0.0.0"
|
||||
"-p" "12344"]}}}
|
||||
39
src/app/components/webserver.clj
Normal file
39
src/app/components/webserver.clj
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
(ns app.components.webserver
|
||||
(:require [io.pedestal.http :as http]
|
||||
[com.stuartsierra.component :as component]
|
||||
[io.pedestal.http.route :as route]))
|
||||
|
||||
(defn respond-hello [request]
|
||||
{:status 200 :body "Hello, world!"})
|
||||
|
||||
(defn resources-by-user [request]
|
||||
{:status 200 :body "hello user"})
|
||||
|
||||
(def routes
|
||||
(route/expand-routes
|
||||
#{["/greet" :get respond-hello :route-name :greet]
|
||||
["/user" :get resources-by-user :route-name :user]}))
|
||||
|
||||
(defn create-service []
|
||||
(http/create-server
|
||||
{::http/routes routes
|
||||
::http/type :jetty
|
||||
::http/port 8890}))
|
||||
|
||||
(defn start []
|
||||
(http/start (create-service)))
|
||||
|
||||
(defrecord WebServer []
|
||||
component/Lifecycle
|
||||
(start [this]
|
||||
(println ";; Starting Web server...")
|
||||
(let [server (create-service)]
|
||||
(assoc this :server (http/start server))))
|
||||
(stop [this]
|
||||
(println ";; Stopping Web server...")
|
||||
(when-let [server (:server this)]
|
||||
(http/stop server))
|
||||
(assoc this :server nil)))
|
||||
|
||||
(defn new-web-server []
|
||||
(map->WebServer {}))
|
||||
10
src/app/core.clj
Normal file
10
src/app/core.clj
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
(ns app.core
|
||||
(:require [com.stuartsierra.component :as component]
|
||||
[app.system :as system]))
|
||||
|
||||
(defn main []
|
||||
(component/start (system/system )))
|
||||
|
||||
(comment
|
||||
(component/stop (system/system))
|
||||
)
|
||||
7
src/app/system.clj
Normal file
7
src/app/system.clj
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
(ns app.system
|
||||
(:require [com.stuartsierra.component :as component]
|
||||
[app.components.webserver :refer [new-web-server]]))
|
||||
|
||||
(defn system []
|
||||
(component/system-map
|
||||
:web (new-web-server)))
|
||||
Loading…
Add table
Add a link
Reference in a new issue