【问题标题】:Clojure: Use Rook and Ring to provide a REST interface and serve static HTML/JSClojure:使用 Rook 和 Ring 提供 REST 接口并提供静态 HTML/JS
【发布时间】:2015-02-05 05:35:29
【问题描述】:

我编写了一些 Clojurescript 代码,它们需要一个 REST 接口才能与服务器通信。后端目前使用 Python,我想将其移至 Clojure。现在我找到了 rook https://github.com/AvisoNovate/rook,它为我准备使用的 REST 提供了一个不错的 API。

但是我想使用 ring(由 rook 使用)在同一个 http 服务器上提供一些静态内容(基本上是 ClojureScript 的 html 和 JS)。

我的设置与现在 Rook 示例中的设置非常相似:

https://portal.aviso.io/#/document/open-source/rook/Current/example.html

(ns org.example.server (:进口 [org.eclipse.jetty.server 服务器]) (:要求 [ring.adapter.jetty:作为码头] [io.aviso.rook :as rook] [clojure.tools.logging :as l])) (定义启动服务器 “在指定端口上启动服务器,并返回一个将其关闭的函数。” [港口] (let [handler (-> (rook/namespace-handler) [“计数器”'org.example.resources.counters]) rook/wrap-with-standard-middleware) ^Server server (jetty/run-jetty handler {:port port :join?false})] (l/infof "监听端口 %d。" 端口) #(.stop 服务器))) (定义主要 [] (启动服务器 8080))

我不清楚如何使用环静态资源功能运行它:https://github.com/ring-clojure/ring/wiki/Static-Resources

【问题讨论】:

    标签: rest clojure ring


    【解决方案1】:

    我对 rook 不是很熟悉,在快速浏览了文档和一些代码后,我没有看到其中包含静态资源。如有错误,请见谅。

    看起来 rook 做了很多事情,但最后它还是给了你一个 ring handler。因此,您应该能够获取它返回的环处理函数并将其与任何其他环处理函数/中间件组合,例如 Ring 附带的那些。

    【讨论】:

      猜你喜欢
      • 2019-12-13
      • 2013-05-25
      • 1970-01-01
      • 2015-08-20
      • 2011-12-10
      • 1970-01-01
      • 2014-05-11
      • 2015-12-19
      • 2020-03-26
      相关资源
      最近更新 更多