我正在开发服务器,使其像Clojure中的一种代理,以基座服务+ lein为基础:
这很容易编码,并且有很多关于如何服务路线的资源,
但是我找不到任何简单的方法,如何将Clojure基座休息
服务与转发路线一起使用
示例:
(ns your-ns
(:require [tailrecursion.ring-proxy :refer [wrap-proxy]]))
(def app
(-> routes
(wrap-proxy "/remote" "http://some.remote.server/remote")))
我只是无法将基座的路由系统与该代理解决方案混合使用,路由是不同的,似乎,也许我需要使用其他方法来实现
答案 0 :(得分:1)
您正在创建一个接收请求的服务器。在您的服务器内,您可以充当客户端向另一台服务器发出请求。然后,您可以将收到的响应修改或汇总到发送给原始客户端的响应中。
请参见the clj-http library进行请求。 Clojure工具箱列出了许多其他选项。
您可能还对this list of documentation resources感兴趣。
答案 1 :(得分:1)
看看 ring-request-proxy
上的 here。来自文档:
(ns myapp.core
(:require [ring-request-proxy.core :as proxy])
; Middleware format: Delegates request to handler when request can't be forwarded
(def app (-> not-found-handler
(proxy/proxy-request {:identifier-fn :server-name
:host-fn {"my-server" "http://my-internal-server"}})))
您应该将其设置为要代理的所有路由的中间件。