При определении обработчика compojure, например. с помощью defroutes
макрос, я могу сделать что-то вроде этого:Как получить selflink в обработчике compojure?
(defroutes home-routes
(GET "/myhome/:id" [ id ] (home-page)))
(defn home-page [ id ]
(... do something ...))
Так что я знаю, как передать часть параметра пути. Но представьте себе, что я хочу вернуть объект HAL + JSON с помощью selflink. Как я могу получить defroutes для передачи всего URI функции home-page
?
Я помню, как возник проблемы с обратными-проксированными запросами, то есть у вас есть сервер Ring на 'локальные: 1234', но общественный транспорт прибывает в' domain.net: 80' , По крайней мере, ': server-port' должен быть 1234 в этом сценарии. (Кроме того, это не становится проще, если протоколы различаются; IIRC вы должны взглянуть на ['X-Forwarded-For'] (http://en.wikipedia.org/wiki/X-Forwarded-For) в этих случаях.) – xsc
Я использую Jetty, и он поддерживает поддержку «X-Forwarded-For», если он настроен для этого. В результате карта запросов звонка содержит «общедоступную» схему, имя сервера и сервер-порт. Таким образом, код в ответе может работать корректно, даже если используется обратный прокси. – ez121sl