使用clojure服务器的通用[/*代理:任意]和特定[/service/x:post..]路由

使用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

我是一个使用基座(desidel.io)的新手,我试图代理从浏览器收到的所有请求,除了一些需要额外拦截器的特定请求。以下是我的路线:

(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))]]
       })