Size: a a a

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

2019 July 03

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
я наоброт оттуда всё выкинул лишнее, или почти все.
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
хм….
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
[ring/ring-core "1.7.1"]
   [ring/ring-jetty-adapter "1.7.1"]
   [ring/ring-json "0.4.0"]
   [ring/ring-headers "0.3.0"]
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
для отдачи джсона у меня своя функция - мидлварь как бы тут не нужна
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
это если еще надо отдавать что-то кроме джсона
источник

AI

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

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
[clojure.string :refer [starts-with?]]
   [ring.util.response :refer [get-header set-cookie]]
   [ring.middleware.json :refer [wrap-json-params]]
   [ring.middleware.keyword-params :refer [wrap-keyword-params]]
   [ring.middleware.multipart-params :refer [wrap-multipart-params]]
   [ring.middleware.params :refer [wrap-params]]
   [ring.middleware.cookies :refer [wrap-cookies]]
   ;[ring.middleware.resource :refer [wrap-resource]]
   ;[ring.middleware.file :refer [wrap-file]]
   [ring.middleware.not-modified :refer [wrap-not-modified]]
   [ring.middleware.content-type :refer [wrap-content-type]]
   ;'[ring.middleware.proxy-headers :refer [wrap-forwarded-remote-addr]]
   [ring.middleware.absolute-redirects :refer [wrap-absolute-redirects]]
   [ring.middleware.x-headers :refer
       [wrap-xss-protection wrap-content-type-options wrap-frame-options]]))

   ;; NOTE: ring-cors
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Спасибо, буу копаться )
источник

MP

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

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
а вообще, склоняюсь к тому, что лучше делать отдельно хэндлер для апи/джсона и отдельно для хтмл/файлов
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
они слабо пересекаются и у них разные мидлвари
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
и стартовать 2 сервера на разных портах? )
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
То есть совсем не обязательно городить универсальный стэк мидлваров на все случаи жизни.
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
нет, лисенер один
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Maxim Penzin
это все есть у него в дефолтсах, но там такой всяко-конфигурабельный метод сделан - мне такое не надо, я просто посмотрел что там и оставил, что мне может понадобиться
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Maxim Penzin
То есть совсем не обязательно городить универсальный стэк мидлваров на все случаи жизни.
(defroutes routes
 (route/resources "/")
 (GET "/favicon.ico"          [] (fn [_]  ""))
 (POST "/handler" [] (wrap-protobuf config-protobuf-fn)))

(defn- start-web []
 (web/run (-> app-routes
              wrap-cookies
              metrics/wrap-metrics)
   {"host" (System/getProperty "host" "127.0.0.1")
    "port" (Integer. (System/getProperty "port" "8080"))}))


На деле да, проще каждому хэндлеру приделать свои мидлвари, раз уж отличаются.
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
ну да, вот тут прямо все и написано
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
можно посмотреть как это в pedestal сделано, там все параметры точно так же парсятся, включая body-params, query-params, etc...
и сделано так или иначе через cheshire.core/parse-stream & cheshire.core.generate-stream
io.pedestal.http.body-params, io.pedestal.http/json-body, io.pedestal.http.route/parse-query-string & parse-query-params
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Просто напутан порядок мидлов, это не только на json влияет. Просто посидеть и разобраться
источник