Пример на сайте bk / ring-gzip просто нуждается в небольшой адаптации. Маршруты, возвращаемые из compojure, являются обработчиками; упаковщики берут обработчик и возвращают обработчик. Если вам нужны другие обработчики, они должны быть перед gzip, если они действуют по телам запросов или ответов.
(def app (-> app-routes
(wrap-defaults site-defaults)
(wrap-gzip)))
Обычно предпочтительнее использовать форму макропотока, поскольку у вас может быть несколько промежуточных программ для компоновки, но вы можете просто вызывать функции.