响应图是零组件

时间:2017-09-19 11:16:43

标签: clojure compojure ring

我什么都不懂。 当我从我的招摇中做curl -X GET --header 'Accept: application/json' 'http://localhost:3000/api/hello'时,我得到了一个很好的答案{"result":1}。 但是,当我尝试使用http://localhost:3000/api/hello?criteria=drf之类的内容时,服务器会给我java.lang.NullPointerException: Response map is nil。我很确定这不是零,因为我仍然将{"result":1}重新放回屏幕上。 但是在第一个错误之后,每个GET /hello请求,没有任何查询参数,在服务器端出错,同时仍然给客户端正确的答案?

我需要重新启动服务器才能使错误停止。哪个有效,直到第一个请求查询参数....

(ns swag.handler
  (:require [compojure.api.sweet :refer :all]
            [ring.util.http-response :refer :all]
            [clojure.java.jdbc :as j]
            [clojure.core.match :as match]
            [clojure.spec.alpha :s s]
            )
(def app
  (api
    {:swagger
     {:ui "/"
      :spec "/swagger.json"
      :data {:info {:title "Trash"
                    :description "Compojure Api example"}
             :tags [{:name "api", :description "some apis"}]}}}

    (context "/api" []
      :tags ["api"]

      (GET "/plus" []
        :return {:result Long}
        :query-params [x :- Long, y :- Long]
        :summary "adds two numbers together"
        (ok {:result (+ x y)}))

      (GET "/hello" []
        :query-params [& z]
        (let [criteria (:criteria z) values (:date z)]
          (println z)
          (ok {:result 1})))
))
  )

2 个答案:

答案 0 :(得分:1)

如果收到此消息,请在浏览器中检查favicon.ico请求。

这可能会触发响应映射为null,因为未配置任何路由来处理它。

答案 1 :(得分:0)

对我们来说,问题是我们需要在端点/s上拖尾,这给了我们这个错误(我们在调试时正在查看您的q,但是刚刚解决了)。