您可能希望查看 Clojure Cookbook,online here,或者更好的印刷形式。
Web development with Clojure也是一本好书。
我还有一个“Hello World”example using the Pedestal library here。
这是一个使用 Pedestal 的示例请求图:
request =>
{:protocol "HTTP/1.1",
:async-supported? true,
:remote-addr "127.0.0.1",
:servlet-response
#object[io.pedestal.test$test_servlet_response$reify__34946 0x3e71aa38 "io.pedestal.test$test_servlet_response$reify__34946@3e71aa38"],
:servlet
#object[io.pedestal.http.servlet.FnServlet 0x7168112e "io.pedestal.http.servlet.FnServlet@7168112e"],
:headers {"content-length" "0", "content-type" ""},
:server-port -1,
:servlet-request
#object[io.pedestal.test$test_servlet_request$reify__34934 0x3422eca "io.pedestal.test$test_servlet_request$reify__34934@3422eca"],
:content-length 0,
:content-type "",
:path-info "/echo/abcdef/12345",
:character-encoding "UTF-8",
:url-for #<Delay@5190186c: :not-delivered>,
:uri "/echo/abcdef/12345",
:server-name nil,
:query-string nil,
:path-params {:list-id "abcdef", :item-id "12345"},
:body
#object[io.pedestal.test.proxy$javax.servlet.ServletInputStream$ff19274a 0x2aff7cc4 "io.pedestal.test.proxy$javax.servlet.ServletInputStream$ff19274a@2aff7cc4"],
:scheme nil,
:request-method :get,
:context-path ""}
更新 - 几乎不需要解析。您可以使用非常简单的地图生成响铃响应:
(defn respond-hello [request] ; we ignore the request
{:status 200 :body "Hello, world!"})
不确定您在这里的真正目的是什么.....?如果你真的想从头开始解析,the best option is Instaparse。