2
我有一個應用程序可以根據特定的數據存儲生成密鑰。如果有7個這樣的路線和5個應用程序,則我的event.clj中會有35條路線(或者,如果拆分爲7個/文件在5個文件中)。我想這樣做動態如下:Nest Noir路線
(defnested "/:app-name"
(defpage "/generate/event" {:keys [app-name event-name time] :as key-map}
(response/json
{:key (key-model/build-key :event key-map)}))
(defpage "/generate/event/unread" {:keys [app-name event-name] :as key-map}
(response/json
{:key (key-model/build-key :unread-for-event key-map)}))
)
這樣我可以寫一次,每條路線,然後繞過應用程序名稱(而不是通過它的查詢參數,它的作品,但不是很REST風格。
BONUS
我怎麼能動態調用一個命名空間,以便key-model/build-key
變得redis-model/build-key
或riak-model/build-key
調用基於應用程序的名稱?
是的,我可以做對於每個路由,但我正在尋找一個更好的方法調用解決方案(所以有人可以添加後端,而不必擔心將其添加到路由中的哈希映射)儘管使用get可以允許默認值返回404或422 – Chris
更新的答案。如果'the-ns'或返回值爲零,你仍然可以返回404或422 – DanLebrero
這只是我尋找的那種瘋狂;) – Chris