我在Compojure中处理可选查询参数的惯用方法是什么,并将未定义的查询参数分配给默认值。
我试过这个(这显然不起作用):
service firebase.storage {
match /b/<my-firebase-storage-bucket>/o {
match /{allPaths=**} {
allow read: if request.auth.uid == "mystery";
allow write: if request.auth.uid == "6EP13cYABCciskhKwMTaXYZHS5g1";
}
}
}
我希望这条路线能够匹配两者:
service firebase.storage {
match /b/<my-firebase-storage-bucket>/o {
match /{allPaths=**} {
allow read: if false;
allow write: if true;
}
}
}
和
(GET "/something/:id" [id q :<< as-int :or {q (System/currentTimeMillis)}]
....)
(注意类似的问题已发布here,但它使用了Swagger)
答案 0 :(得分:1)
您可以选择很多选项。这是我可以选择的。
(GET "/something/:id" req
(let [{:keys [id q] :or {q (System/currentTimeMillis)}} (:params req)]
,,,))
但最终,我选择哪一个取决于最可读的(主观测量,但就是它的方式)代码。