У меня есть приложение на основе compojure, где мне нужно проанализировать запрос и получить параметры, которые могут быть числами. Я хочу иметь возможность убедиться, что параметры существуют и что они являются числами, прежде чем фактически обрабатывать запрос. Это то, что у меня есть до сих пор:
(defn get-int [str]
"Returns nil if str is not a number"
(try (Integer/parseInt str)
(catch NumberFormatException _)))
(defn some-request [request]
(let [some-number (get-int (get-in request [:route-params :some-number])
other-number (get-int (get-in request [:route-params :other-number])]
(if (every? identity [some-number other-number])
(process-the-request)
(bad-request "The request was malformed")))
Есть ли лучший способ сделать преобразование строки -> числа?
Есть ли лучший способ сделать проверку запроса?