0

フレームワークをプレイするのは初めてです。私の要件は非常に単純です。play フレームワークを使用して scala で REST API サーバーを作成したいと考えています。play2-mini を使用できましたが、時代遅れのようです。

プロジェクトで play 2.1 を使用したいです。play フレームワークを依存関係として設定する代わりに、コア モジュールのみが必要です。いくつか質問があります -

  1. Play のコアモジュールとは? モジュール名とは?
  2. 非同期の http サーバーを作成するためにコア モジュールを使用するだけで十分ですか?
  3. このリンクには、play-mini の代わりにコア モジュールを使用できると書かれています。それが本当なら、どこでそれについてもっと情報を得ることができますか.
4

3 に答える 3

0

Play Framework は高度にモジュール化されたプロジェクトです。内部的には、約 20 のサブプロジェクトで構成されています。それらのいくつかは、必要に応じてライブラリの依存関係としてプロジェクトに含めることができanormますjdbc。他のプロジェクト (つまりPlayExceptions、など) はどの Play アプリケーションにも不可欠であるためRoutesCompilerTemplatesCompilerそれらへの依存関係を宣言する必要はありません。これらのプロジェクトは、Play Framework の「コア」と呼ぶことができます。

つまり、最小限の依存関係を持つ Play アプリケーションが必要な場合は、不要な依存関係を宣言しないでください。

再生ソース: https://github.com/playframework/Play20

于 2013-06-19T15:34:15.537 に答える
0

単純にルートをセットアップして、送信したデータを解析するコントローラーに向けることができます。以下は、play を使用して JSON を解析し、応答を返す例です。

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-19T14:03:48.050 に答える