0

我是一个有基座(pedestal.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]
           })

但是我从来没有调用虚拟拦截器。这些应该如何结合?

4

1 回答 1

0

这里也描述了这个问题:https ://github.com/pedestal/pedestal/issues/532#issuecomment-324881362

“我对http://pedestal.io/reference/routing-quick-reference的理解是这是故意的:'通配符路由总是胜过同一个子树中的显式路径'。根处的通配符路由胜过其他一切。 "

使固定

在页面底部,http ://pedestal.io/reference/routing-quick-reference它说我们需要说明使用哪个路由器,一个是 :linear-router

所以为了修复它,我在我的服务地图中添加了,后来用于创建服务器

(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))]]
       })
于 2018-06-27T13:29:36.117 回答