【问题标题】:Generic [/*proxy :any] and specific [/service/x :post..] routes with pedestal clojure server带有基座 clojure 服务器的通用 [/*proxy :any] 和特定 [/service/x :post..] 路由
【发布时间】:2018-06-26 12:36:07
【问题描述】:

我是一个使用基座 (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]
           })

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

【问题讨论】:

    标签: clojure routes webserver pedestal


    【解决方案1】:

    这里也描述了这个问题: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))]]
           })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-04
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 2017-04-29
      • 2021-08-08
      • 1970-01-01
      相关资源
      最近更新 更多