1

使用 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)))))

如何访问响铃会话?

4

1 回答 1

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中所述。没有测试过,但我认为这是正确的方法

于 2015-10-14T15:35:39.480 回答