响应图是无效的

问题描述 投票:1回答:2

我只是什么都不懂。当我大张旗鼓地做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})))
))
  )
clojure compojure ring
2个回答
0
投票

对我们来说,我们需要在导致此错误的端点上尾随/s(在调试时正在查看您的q,但刚刚解决了。)


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.