我刚开始玩框架游戏。我的要求很简单。我想使用play框架在scala中创建rest服务器。我可以玩2-迷你游戏,但它似乎已经过时了。
我希望在我的项目中使用play 2.1。与其将play框架设置为依赖关系,我只想要核心模块。所以我有几个问题-
发布于 2013-06-19 14:03:48
您只需简单地设置一条路由,然后将其指向解析您发送的数据的控制器。以下是json解析和使用play返回响应的示例。
http://www.playframework.com/documentation/2.1.1/ScalaJsonRequests
package controllers
import play.api._
import play.api.mvc._
import play.api.libs.json._
// you need this import to have combinators
import play.api.libs.functional.syntax._
object Application extends Controller {
implicit val rds = (
(__ \ 'name).read[String] and
(__ \ 'age).read[Long]
) tupled
def sayHello = Action { request =>
request.body.asJson.map { json =>
json.validate[(String, Long)].map{
case (name, age) => Ok("Hello " + name + ", you're "+age)
}.recoverTotal{
e => BadRequest("Detected error:"+ JsError.toFlatJson(e))
}
}.getOrElse {
BadRequest("Expecting Json data")
}
}
}或者更简单..。
def sayHello = Action(parse.json) { request =>
request.body.validate[(String, Long)].map{
case (name, age) => Ok("Hello " + name + ", you're "+age)
}.recoverTotal{
e => BadRequest("Detected error:"+ JsError.toFlatJson(e))
}
}发布于 2013-06-19 15:34:15
Play Framework是一个高度模块化的项目。在内部,它由大约20个子项目组成。如果您需要它们,可以将其中一些作为库依赖项包括在您的项目中,例如anorm或jdbc。其他项目(如PlayExceptions、RoutesCompiler、TemplatesCompiler等)对于任何Play应用程序来说都是必不可少的,因此您不需要声明对它们的依赖。这些项目可以被称为Play Framework的“核心”。
换句话说,如果您需要一个具有最小依赖项的Play应用程序,就不要声明不需要的依赖项。
发布于 2014-02-05 10:19:39
我不认为这里有什么问题。例如,这是我的build.sbt,用于一个非常小的项目,它使用json,其中我想使用Play库,但不一定要创建一个完整的Play应用程序:
name := "my-small-project"
version := "0.0.1-SNAPSHOT"
resolvers ++= Seq(
"TypeSafe Repo" at "http://repo.typesafe.com/typesafe/releases",
"Sonatype Repo" at "http://oss.sonatype.org/content/repositories/releases"
)
libraryDependencies ++= Seq(
"org.specs2" %% "specs2" % "2.3.7" % "test",
"commons-codec" % "commons-codec" % "1.8",
"com.typesafe.play" % "play_2.10" % "2.2.1",
"com.typesafe.play" % "play-json_2.10" % "2.2.1"
)您仍然可以在这里删除一些依赖项,特别是在不需要Base64编码的情况下。在这里,我认为play_2.10是您感兴趣的“核心”。不过,你应该熟悉sbt,但这并不难。
还请记住,“Play应用程序”和“使用Play库的应用程序”之间的区别是非常模糊的,特别是当您使用sbt时。这就是它的美妙之处,这展示了游戏创建者们是如何通过为他们的项目创建定制的系统需求来努力避免再次发明轮子的。例如,您可以输入一个Play应用程序dir并输入"sbt编译“,而不是触发一个播放控制台,它应该工作得很好。
https://stackoverflow.com/questions/17193221
复制相似问题