2012-05-10 13 views
3

playframework 2 scalaのplay.mvc.Router.routesに相当するものは何ですか? playframework 1.xのでplayframework 2 scalaアプリケーションのルートを反復処理するにはどうすればよいですか?

私は、コントローラで利用可能な経路上で反復処理できます。

for(Route route:Router.routes){ 
    ... 
} 

私はplayframework 2スカラ座でこれを行うだろうか?

見つからないdev mode templateは、それらを反復処理できるようですが、コントローラでこれを行う必要があります。

答えて

8

Play 2.0では実際にはできません。

ルートはPartialFunction[RequestHeader, Handler]と定義されていますが、この機能のドメインを知る方法はありません。 2.0ルータは、アプリケーションの各ルートのため、帰国documentationフィールドを生成プレイ、そのHTTPメソッド(GETPUT見つからないテンプレートに示すよう

それにもかかわらず、あなたは、アプリケーションのルートのいくつかの情報を取得することができますなど)、そのパスパターン、そして最後にはconf/routesファイルに書かれているような呼び出しです。

for { 
    routes <- play.api.Play.current.routes.toList 
    (method, pattern, call) <- routes.documentation 
} yield { 
    … 
} 
+0

をリフレクションを使用して詳細情報を取得する方法があるでしょう:

ルータが起動したときに次のように、あなたがそれにアクセスすることができ、あなたのPlayアプリケーションによってロードされRoutesオブジェクトが生成しますか?実際に私は私のAPIのドキュメンテーションを生成したいと思います。 – Somatik

+0

上記の例は動作していないようです - > not found:value Routes。輸入が必要ですか? – Somatik

+0

実際、 'Routes'オブジェクトは実行時に読み込まれるので、コンパイル時にクラスパスには表示されません。私はコードスニペットを編集し、うまく動作しないかどうか教えてください。 –

関連する問題