我只是什么都不懂。当我大张旗鼓地做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})))
))
)
对我们来说,我们需要在导致此错误的端点上尾随/s
(在调试时正在查看您的q,但刚刚解决了。)
如果收到此消息,请在浏览器中检查favicon.ico请求。
这可能会触发响应映射为null,因为未配置任何路由来处理它。