使用compojure-api,如:
(defapi app
(swagger-ui)
(swagger-docs
{:info {:title "Sample api"}})
(GET* "/" []
:no-doc true
(ok "hello world"))
(context* "/api" []
:tags ["thingie"]
(GET* "/plus" []
:return Long
:query-params [x :- Long, {y :- Long 1}]
:summary "x+y with query-parameters. y defaults to 1."
(ok (+ x y)))))
如何访问响铃会话?
答案 0 :(得分:0)
基于此处的文档:https://github.com/metosin/compojure-api/blob/master/src/compojure/api/core.clj,defapi是以下宏:
(defmacro defapi
[name & body]
`(def ~name
(api ~@body)))
你可以看到它只是用api
宏调用的结果来定义var(而api
创建一个环处理程序)
所以你可以在没有defapi的情况下使用它,然后换环会话:
(def app
(-> (api (swagger-ui)
(swagger-docs
{:info {:title "Sample api"}})
(GET* "/" []
:no-doc true
(ok "hello world"))
(context* "/api" []
:tags ["thingie"]
(GET* "/plus" []
:return Long
:query-params [x :- Long, {y :- Long 1}]
:summary "x+y with query-parameters. y defaults to 1."
(ok (+ x y))
ring.middleware.session/wrap-session))
我想在那之后您应该能够正常使用会话,如https://github.com/ring-clojure/ring/wiki/Sessions中所述。 Haven不会测试它,但我认为这是正确的方式