特定のデータストアに基づいてキーを生成するアプリがあります。そのようなルートが 7 つとアプリが 5 つある場合、私の event.clj には合計 35 のルートがあります (または、分割されている場合は、5 つのファイルに 7/file)。次のことを動的に実行したいと思います。
(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)}))
)
そうすれば、各ルートを 1 回記述してから、app-name を渡すことができます (クエリ パラメーターで渡すのではなく、機能しますが、あまり RESTful ではありません。
ボーナス
key-model/build-key
名前空間を動的に呼び出して、アプリ名への呼び出しになるredis-model/build-key
かriak-model/build-key
、アプリ名に基づいて呼び出すにはどうすればよいですか?