Size: a a a

Clojure — русскоговорящее сообщество

2020 January 28

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
я поплыл)
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
погоди
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
ты писал, что with-router это по сути мидлварь, который распределяет какой из хендлеров ему дергать. так?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
я поплыл)
с мидлварями это легко
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
я отдаю этому мидлварю реквест, и внутри первого дергаю нужные мне функции хендлеры
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
я отдаю этому мидлварю реквест, и внутри первого дергаю нужные мне функции хендлеры
мидлварь получает не реквест, а хэндлер
и возвращает новый хэндлер
на это я и хотел обратить твоё внимание, если ты начнёшь писать свою мидлварь
почитай код стандартных ринговых мидлварей
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
я отдаю этому мидлварю реквест, и внутри первого дергаю нужные мне функции хендлеры
а реквест отдаётся хэндлеру, и не тобой, а сервером
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну тут всё в принципе есть https://github.com/ring-clojure/ring/wiki/Concepts
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
так. вот это знаичт ересь

(defn about-handler [req]
 {:status 200
  :headers {"Content-Type" "text/plain"}
  :body "About page"})

(defn home-handler [req]
 {:status 200
  :headers {"Content-Type" "text/plain"}
  :body "Home page"})

(defn with-router [req]
 (case (:uri req)
   "/" (home-handler req)
   "/about" (about-handler req)))

(def app
 (->
  with-router
  wrap-reload))
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
корне неверно построено
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
with-router сейчас и не мидлварь вовсе
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
так. вот это знаичт ересь

(defn about-handler [req]
 {:status 200
  :headers {"Content-Type" "text/plain"}
  :body "About page"})

(defn home-handler [req]
 {:status 200
  :headers {"Content-Type" "text/plain"}
  :body "Home page"})

(defn with-router [req]
 (case (:uri req)
   "/" (home-handler req)
   "/about" (about-handler req)))

(def app
 (->
  with-router
  wrap-reload))
да
(defn with-router [handler]
 (fn [req]
   (case (:uri req)
     "/" (home-handler req)
     "/about" (about-handler req))))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
да
(defn with-router [handler]
 (fn [req]
   (case (:uri req)
     "/" (home-handler req)
     "/about" (about-handler req))))
упс
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
да
(defn with-router [handler]
 (fn [req]
   (case (:uri req)
     "/" (home-handler req)
     "/about" (about-handler req))))
хотя вроде правильно
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
по сути изначально хендлер может быть чистым?
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
и с помощью мидлварь роутинга я имогу его дополнить. верно?
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
то есть теперь я делаю так
(defn about-handler [req]
 {:status 200
  :headers {"Content-Type" "text/plain"}
  :body "About page"})

(defn home-handler [req]
 {:status 200
  :headers {"Content-Type" "text/plain"}
  :body "Home page"})

(defn with-router [handler]
 (fn [req]
   (case (:uri req)
     "/" (home-handler req)
     "/about" (about-handler req))))

(def app
 (->
  {}
  with-router
  wrap-reload))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
так. вот это знаичт ересь

(defn about-handler [req]
 {:status 200
  :headers {"Content-Type" "text/plain"}
  :body "About page"})

(defn home-handler [req]
 {:status 200
  :headers {"Content-Type" "text/plain"}
  :body "Home page"})

(defn with-router [req]
 (case (:uri req)
   "/" (home-handler req)
   "/about" (about-handler req)))

(def app
 (->
  with-router
  wrap-reload))
вообще-то здесь нет ошибки
у тебя with-handler стоит в позиции хэндлера и написан также
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
и я могу сделать один мидлварь with-response, чтобы не плодить одинаковые хешмапы respons'a
источник