使用clojure服务器的通用[/*代理:任意]和特定[/service/x:post..]路由
我是一个使用基座(desidel.io)的新手,我试图代理从浏览器收到的所有请求,除了一些需要额外拦截器的特定请求。以下是我的路线:使用clojure服务器的通用[/*代理:任意]和特定[/service/x:post..]路由,clojure,routes,webserver,pedestal,Clojure,Routes,Webserver,Pedestal,我是一个使用基座(desidel.io)的新手,我试图代理从浏览器收到的所有请求,除了一些需要额外拦截器的特定请求。以下是我的路线: (def routes #{ ["/*proxy" :any [(proxy-handler (server :dan-server))]] ["/service/storyboard/StoryboardLayer/auto" :post [dummy-interceptor (proxy-handler (serve
(def routes #{
["/*proxy" :any [(proxy-handler (server :dan-server))]]
["/service/storyboard/StoryboardLayer/auto" :post [dummy-interceptor (proxy-handler (server :dan-server))] :route-name :save-layer-route]
})
但是我从未调用过虚拟拦截器。如何将这些结合起来?这里也描述了问题: “我对的理解是,这是故意的:‘通配符路由总是胜过同一子树中的显式路径’。根目录下的通配符路由胜过所有其他路径。” 修复 在页面底部,它说我们需要说明使用哪种路由器,其中一种是:线性路由器 所以为了修复它,我在我的服务映射中添加了服务映射,后来用于创建服务器
(def service {
...
::http/router :linear-search
现在,如果我切换路径,它会起作用,因为它们是按顺序(线性)分析的
(def routes #{
["/service/storyboard/StoryboardLayer/auto" :post [dummy-interceptor (proxy-handler (server :dan-server))] :route-name :save-layer-route]
["/*proxy" :any [(proxy-handler (server :dan-server))]]
})