異なるポートで実行されている2つの異なるアプリ/ハンドラー(1つはAPI用、もう1つはWebフロントエンド用)を持つclojure/ringプロジェクトがあります。それらは多くのコードを共有しますが、それぞれに独自の名前空間があり、そのインターフェイスに固有のすべての作業を実行します。これを、Tomcatなどで実行されているサーブレットとしてデプロイしたいと思います(実際には、任意のサーブレットコンテナで動作する必要があります)。しかし、lein-ringは、サーブレットにハンドラーが1つしかないことを前提としているように見えるため、問題が発生しています。たとえば、私のproject.cljには、次の行があります。
:ring {:handler caribou.api/app
:servlet-name "caribou"
:init caribou.api/init}
これはAPIには最適ですが、フロントエンドについてはどうでしょうか。独自のハンドラーとサーブレットを持つことができるように、これを含む別のプロジェクトを作成する必要がありますか?サーブレットは常に1つのポートで実行されますか?
基本的にわからないことが2つあります。Javaのバックグラウンドを持っていないため、サーブレットアプローチで何が起こっているのか、どのような制限があるのかがわかりません。また、clojureがどのように正確に変換されるのかわかりません。このプロジェクトを一般的な方法で構造化するのに十分なサーブレットパラダイム。
どんな助けでもありがたいです、ありがとう!