概括
我正在开发一个类似于 Clojure 中的代理的服务器,以基座服务 + lein 为基础:
- 接收请求
- 将请求转发到外部服务器
- 发出多个服务器到服务器的请求以提供更大的 json 并作为单个请求返回给客户端
它很容易编码,并且有很多关于如何提供路由的资源,
但是我找不到任何简单的方法,如何将 Clojure 基座
服务与转发路由一起使用
例子
- 客户端调用 [GET] /billing => proxy-clojure-server
- proxy-clojure-server使用客户端凭据验证请求 => auth-server
- proxy-clojure-server用计费数据填充 json => billing-server
- proxy-clojure-server用客户数据填充 json => customer-server
- proxy-clojure-server返回 200 并解析完整的 JSON
设置
- 我有一个结构类似的项目: lein new pedestal-service my-app
我一直在尝试的
例子:
(ns your-ns
(:require [tailrecursion.ring-proxy :refer [wrap-proxy]]))
(def app
(-> routes
(wrap-proxy "/remote" "http://some.remote.server/remote")))
我只是无法将基座的路由系统与此代理解决方案混合,路由不同,似乎,也许我需要用不同的方法来做
免责声明
- 我知道基本转发也可以由 nginx、varnish 和任何其他负载均衡器完成。但我的想法是填充来自不同服务器的数据,使其为客户端简化
- 正如您可能已经注意到的,我是 Clojure 的新手。而且我没有选择,因为谷歌关于那个也很复杂,有时没用