Play Frameworkの基礎
Playを使い始め、そのアーキテクチャを理解し、最初のWebアプリケーションをセットアップします。
「Play Frameworkの基礎」はCoddyKit上の無料Scala for Backend Engineering & Functional Programmingレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはScala for Backend Engineering & Functional Programming学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Scala for Backend Engineering & Functional Programmingコースには全3レッスンが含まれています。
Play Framework入門
Play Frameworkへようこそ!Playは、ScalaとJava向けの強力なオープンソースWebアプリケーションフレームワークです。
開発者の生産性とパフォーマンスを重視し、高いスケーラビリティを持つ最新のWebアプリケーションやAPIを構築できるように設計されています。
リアクティブかつ非同期なコア
Playはリアクティブな基盤上に構築されており、その内部ではAkkaが利用されています。つまり、リクエストを非同期に処理し、デフォルトではブロッキングしません。
- リアクティブ:多数の同時リクエストを効率的に処理します。
- 非同期:処理によってサーバーのスレッドがブロックされません。
- ステートレス:水平スケーリングを前提に設計されているため、マイクロサービスに適しています。
Playプロジェクトを作成する
新しいPlayプロジェクトを始めるには、PlayのシードテンプレートとSBT(Scala Build Tool)を使用します。SBTがインストールされていることを確認してください。
ターミナルで次のコマンドを実行します。
sbt new playframework/play-scala-seed.g8このコマンドにより、基本的なPlay Scalaアプリケーションの構成を備えた新しいプロジェクトディレクトリが作成されます。
Playプロジェクトの構成
Playプロジェクトには、明確に定義されたディレクトリ構成があります。
app/:Scalaのソースコード(コントローラー、モデル、ビュー)を格納します。conf/:routes(URLマッピング)やapplication.confなどの設定ファイルを格納します。public/:静的アセット(JavaScript、CSS、画像)を格納します。project/:SBTのビルド定義ファイル(例:build.sbt)を格納します。test/:アプリケーションのテストを格納します。
`routes`でURLをマッピングする
conf/routesファイルは重要な役割を果たします。このファイルでは、HTTPリクエスト(メソッドとパス)をアプリケーション内の特定のコントローラーアクションに割り当てます。
各行には、HTTPメソッド、URLパス、呼び出すコントローラーメソッドを指定します。
# conf/routes
GET / controllers.HomeController.index()
GET /hello/:name controllers.HelloController.sayHello(name: String)Playコントローラーを作成する
コントローラーは、受信したHTTPリクエストを処理するScalaのオブジェクト(またはクラス)です。リクエストを処理して結果を返すアクション関数を含みます。
通常、コントローラーはBaseControllerを継承し、ControllerComponentsを注入します。
package controllers
import play.api.mvc._
import javax.inject._
@Singleton
class HomeController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
// Action functions go here
}アクションロジックを定義する
アクション関数は、コントローラー内の中核となるロジックです。暗黙のRequestを受け取り、Result(例:Ok、NotFound、Redirect)を返します。
Action { ... }ブロックでコードをラップすると、有効なPlayアクションになります。
// Inside HomeController
def sayHello(name: String) = Action { implicit request =>
Ok(s"Hello, $name! Welcome to Play.")
}Twirlで動的HTMLを生成する
PlayはTwirlテンプレート(.scala.htmlファイル)を使用して、動的なHTMLレスポンスを生成します。HTML内にScalaコードを直接埋め込むことができます。
テンプレートは型安全な状態でコンパイルされるため、エラーを早期に検出できます。
@* app/views/welcome.scala.html *@
@(userName: String)
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome, @userName!</h1>
<p>This page was generated by a Play template.</p>
</body>
</html>Playアプリを起動する
プロジェクトを設定し、いくつかのルートとコントローラーを定義したら、SBTを使ってアプリケーションを実行できます。
ターミナルでプロジェクトのルートディレクトリに移動し、次を実行します。
sbt runアプリケーションは通常、http://localhost:9000で起動します。
Playコンポーネントのクイズ
Play Frameworkの基本事項を理解できているか確認しましょう。
振り返り:Playの基本
Play Frameworkの第一歩を踏み出しました。次の内容を学びました。
- Playとは何か、そしてそのリアクティブな特性。
- SBTで新しいプロジェクトをセットアップする方法。
- 主要なプロジェクトディレクトリ。
- URLマッピングにおける
conf/routesの役割。 - コントローラーとアクション関数の作成方法。
- 動的なビューにTwirlテンプレートを使用する方法。
- Playアプリケーションの実行方法。
次は、PlayでRESTful APIを構築する方法を学びます。
AI チューターと学ぶ Scala — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 39
- レッスン
- 143
よくある質問
「Play Frameworkの基礎」レッスンは無料ですか?
はい。「Play Frameworkの基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Scala for Backend Engineering & Functional Programmingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Scala for Backend Engineering & Functional Programmingコースには全3レッスンが含まれています。
「Play Frameworkの基礎」で何を学びますか?
Playを使い始め、そのアーキテクチャを理解し、最初のWebアプリケーションをセットアップします。 ブラウザで直接実行するハンズオンコードでScala for Backend Engineering & Functional Programmingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Scala for Backend Engineering & Functional Programmingを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのScala for Backend Engineering & Functional Programmingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。
「Play Frameworkの基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このScala for Backend Engineering & Functional Programmingレッスンでコードを書いて実行できますか?
はい。すべてのScala for Backend Engineering & Functional Programmingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Play Frameworkの基礎
- PlayでRESTful APIを構築する
- Slick/Doobieによるデータベース連携