instalar - Archivo de ruta de Playframework: rutas de producción separadas de las rutas de desarrollo
play framework tutorial español (2)
Bueno, esto no está documentado, por lo que no estoy seguro de si esto es intencionalmente posible o no, pero he encontrado una manera de hacer que esto funcione. Sin embargo, tenga en cuenta que, dado que se trata de una función no documentada, puede significar que no está intencionada y, por lo tanto, puede fallar en futuras versiones del juego.
Puede lograr lo que desea utilizando la siguiente línea en su archivo de rutas.
%{ if (play.mode.isDev()) }%
Creé una aplicación de prueba con un par de acciones.
public class Application extends Controller {
public static void index() {
render();
}
public static void noDev() {
renderText("NoDev");
}
public static void noProd() {
renderText("NoProd");
}
}
Luego agregué lo siguiente a mi archivo de rutas
# Home page
GET / Application.index
# Ignore favicon requests
GET /favicon.ico 404
# Map static resources from the /app/public folder to the /public path
GET /public/ staticDir:public
%{ if (play.mode.isDev()) }%
GET /route1 Application.noDev
GET /route2 Application.noDev
GET /route3 Application.noDev
* /{controller}/{action} {controller}.{action}
%{ if (play.mode.isProd()) }%
GET /route4 Application.noProd
GET /route5 Application.noProd
GET /route6 Application.noProd
* /{controller}/{action} {controller}.{action}
Por lo tanto, puede ver que utilizando una instrucción simple if, ejecutará el siguiente grupo de rutas solo en ese modo. La sentencia if terminará cuando se encuentre la siguiente sentencia if.
Si en el modo Dev intenta acceder a route4, no podrá acceder a ella y verá la página RouteNotFound que muestra que las rutas disponibles son las que ha definido solo para Dev.
¿Hay alguna forma en Play para anotar rutas para informar que una determinada sección / grupo de rutas solo está disponible en modo dev o prod
Para Play Framework versión 2.x:
- Necesita tener otro archivo de
routes
, digamosprod.routes
en la raíz de su aplicación (el mismo directorio del archivo deroutes
original), este archivo contiene solo las rutas que desea para la producción. - Luego crea otro archivo
.conf
comoprod.conf
dentro de la carpetaconf
. - Ahora este nuevo archivo conf debe contener lo siguiente:
para el framework de juego 2.4 y más reciente:
include "application.conf"
play.http.router=prod.Routes
O sin un nuevo parámetro de paso de archivo .conf
:
-Dplay.http.router=prod.Routes
Y si es mayor de 2.4 entonces:
include "application.conf"
application.router=prod.Routes
Y cuando ejecute la producción, ejecútelo con -Dconfig.file=prod.conf