1

URI ルーティングでバージョンを動的に定義しようとしています。

私の即時のアイデアは

a) application.conf で、現在のバージョンを示す行を構成しました。

myApp.ver = 0.1

routes ファイルで URI の一部として使用したくありません。たとえば、次のようになります。

GET /myApp/{version}/welcome controller.myApp.Welcome()

アイデアは、バージョン番号を Welcome() メソッドに渡すのではなく、application.conf ファイルからバージョンを取得することです。

ルート ファイルでパラメーターの定義を検索しましたが、役立つ情報が見つかりませんでした。

b) 別のアイデアは、次のような変数をルートに含めることでした。

CurrentVersion = 0.1

routes ファイルに追加し、URI で使用します。

どうすればこれを解決できますか? この例は見つかりませんでした。

ありがとう。

4

2 に答える 2

2

すべてのルートでこれを行いたい場合application.baseUrlは、バージョン番号を含めるように設定できるはずです。これを便利に行うには、ここで説明するように、ファイルapplication.confの代わりに自分でバージョンを定義できます。Build.scala

myApp.name = myApp
myApp.ver = 0.1
application.baseUrl = ${myApp.name}/${myApp.ver}

一部のルートのみを実行したい場合、簡単な解決策はないようです。ルートのパラメーターを無視できる場合は、regexp パラメーターを使用してグローバル ルーターで検証することをお勧めします。残念ながら、コントローラーにパラメーターを渡さないと、これは不可能のようです。

したがって、他に 2 つのオプションがあります。

  1. バージョン番号をルート ファイルにハードコーディングし、変更されるたびに検索と置換を行います。
  2. sbt ビルド プロセス用のプラグインを作成し、ルート ファイルのバージョンを置き換えます。
于 2013-08-29T12:44:03.943 に答える
1

Play 1.2.x では、conf/routesファイルに次のようなルートを追加します。

GET   /myApp/${play.configuration.getProperty("myApp.ver")}/welcome     myApp.Welcome()
于 2013-08-29T13:47:10.907 に答える