我有一个为特定数据存储生成密钥的应用程序。如果有 7 个这样的路由和 5 个应用程序,那么我的 event.clj 中将总共有 35 个路由(或者,如果拆分,7/file in 5 个文件)。我想动态地执行以下操作:
(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)}))
)
这样我就可以编写每条路由一次,然后传递应用程序名称(而不是在查询参数中传递它,它可以工作但不是很 RESTful。
奖金
如何动态调用命名空间,以便key-model/build-key
调用redis-model/build-key
或riak-model/build-key
基于应用名称?