私は次のルートで間違ったつもりだところ、私は理解することはできません:私はのようになりますJSONオブジェクトとレスポンスボディを返すようにしようとしている(試行)式の中からリングルートの応答本文を返すにはどうすればよいですか?
(ns mds.routes.api
(:require [mds.db.core :refer [*db*] :as db]
[compojure.core :refer [defroutes POST]]
[ring.util.http-response :as response]
[clojure.walk :as walk]))
(defroutes api-routes
(POST "/student" request
(let [{body :body} request]
(let [student (walk/keywordize-keys body)]
(try
(db/create-student! student)
{:saved true
:error nil
:student student}
(catch Exception e {:saved false
:error e
:student nil})
)))))
:
{
"saved":"true",
"error":"nil",
"student": {...}
}
しかし、私はちょうど空の応答のボディを取得しています。 db/create-student!
呼び出しは正常に動作し、JSON本体または500エラーのいずれかが表示されますが、(try)式を使用すると、毎回空のステータス200応答が返されます。
(try)式を取得してマップを返し、それを応答ハンドラに渡すにはどうすればよいですか?
他にも違いがあるかどうかを確認するために、 'try'も含めないコードを含めることができますか? –