Skip to content

Instantly share code, notes, and snippets.

@pcejrowski
Created May 9, 2018 20:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pcejrowski/2189f86e7f2a808a3786575b2973a5c1 to your computer and use it in GitHub Desktop.
Save pcejrowski/2189f86e7f2a808a3786575b2973a5c1 to your computer and use it in GitHub Desktop.
Play Embedded Server with routings in different submodules
play.http.secret.key="weirdsecret"
play.http.secret.key=${?APPLICATION_SECRET}
inThisBuild(List(
organization := "com.example",
scalaVersion := "2.12.6",
version := "0.1.0-SNAPSHOT"
))
lazy val root = (project in file("."))
.settings(name := "play-server")
.aggregate(module, server)
lazy val module = (project in file("module"))
.settings(
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-server" % "2.6.13" % Provided
)
)
lazy val server = (project in file("server"))
.settings(
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-akka-http-server" % "2.6.13"
)
)
.dependsOn(module)
import play.api.mvc._
import play.api.routing.sird._
import play.api.routing.{Router, SimpleRouter}
object ModuleEndpoints extends SimpleRouter {
def routes: Router.Routes = {
case GET(p"/getendpoint") => Action { req =>
Results.Ok("/getendpoint in ModuleEndpoints")
}
}
}
import play.api.routing.Router
import play.core.server.{AkkaHttpServer, ServerConfig}
object MyServer extends App {
val routes = Map(
"/module" -> ModuleEndpoints,
"/server" -> ServerEndpoints
)
val server = AkkaHttpServer.fromRouter(ServerConfig(port = Some(8080)))(routes)
implicit def combine(routers: Map[String, Router]): Router.Routes =
routers
.map { case (prefix, router) => router.withPrefix(prefix).routes }
.reduceLeft(_ orElse _)
}
import play.api.mvc._
import play.api.routing.sird._
import play.api.routing._
object ServerEndpoints extends SimpleRouter {
def routes: Router.Routes = {
case GET(p"/getendpoint") => Action { req =>
Results.Ok("/getendpoint in ServerEndpoints")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment