我已经开始学习clojure,并且有一个用例,我想用查询参数调用下游服务。现在,这些查询参数可以变化,也可以不存在。我一直纠结于如何使用clojure来实现它。任何有经验的人的帮助都将是伟大的!
(defn- call-stud-service* [name id college_id course city]
(let [base-url-prefix (get-in config [:url :student-service])
student-service-url (str (url base-url-prefix base-path))]
{:connection-manager connection-manager
:throw-exceptions false
:headers {:Content-Type "application/json"
:Accept "application/json"}
:query-params {"name" name
"id" id
"college_id" college_id
"course" course}}))
我的用例是:如果我有额外的参数city
,我可以在请求中将其作为查询参数传递,否则我不会。
我考虑过可能使用assoc
来附加查询参数,但不确定是否有效。
使用cond->
:
(cond-> query-params
city (assoc "city" city))