Scala for Backend Engineering & Functional Programming · Урок

Основы Play Framework

Начните работу с Play, изучите его архитектуру и настройте своё первое веб-приложение.

Урок 1 из 311 шагов

«Основы Play Framework» — бесплатный урок Scala for Backend Engineering & Functional Programming на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Scala for Backend Engineering & Functional Programming, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Scala for Backend Engineering & Functional Programming содержит 3 уроков всего.

Введение во фреймворк Play

Добро пожаловать во фреймворк Play! Play — это мощный веб-фреймворк с открытым исходным кодом для Scala и Java.

Он предназначен для создания современных веб-приложений и API с высокой масштабируемостью, уделяя особое внимание продуктивности разработчиков и производительности.

Реактивное и асинхронное ядро

Play построен на реактивной основе и использует Akka. Это означает, что по умолчанию он обрабатывает запросы асинхронно и неблокирующим образом.

  • Реактивность: эффективная обработка множества одновременных запросов.
  • Асинхронность: операции не блокируют поток сервера.
  • Отсутствие состояния: приложение рассчитано на горизонтальное масштабирование, поэтому хорошо подходит для микросервисов.

Создание проекта Play

Чтобы начать новый проект Play, вы будете использовать SBT (Scala Build Tool) с шаблоном-заготовкой Play. Убедитесь, что 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/: содержит тесты приложения.

Сопоставление URL с `routes`

Файл conf/routes имеет ключевое значение. Он определяет, как HTTP-запросы (метод и путь) сопоставляются с определёнными действиями контроллеров в приложении.

В каждой строке указываются HTTP-метод, путь URL и метод контроллера, который нужно вызвать.

# conf/routes
GET     /               controllers.HomeController.index()
GET     /hello/:name    controllers.HelloController.sayHello(name: String)

Создание контроллеров Play

Контроллеры — это объекты (или классы) Scala, которые обрабатывают входящие HTTP-запросы. Они содержат функции действий, обрабатывающие запросы и возвращающие результаты.

Обычно контроллеры расширяют 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.")
}

Динамический HTML с Twirl

Play использует шаблоны Twirl (файлы .scala.html) для создания динамических ответов HTML. Они позволяют встраивать код Scala непосредственно в HTML.

Шаблоны типобезопасны и компилируются, поэтому ошибки обнаруживаются на раннем этапе.

@* 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.

Повторение: основы Play

Вы сделали первые шаги с фреймворком Play! Мы рассмотрели:

  • что такое Play и в чём заключается его реактивная природа;
  • как настроить новый проект с помощью SBT;
  • основные каталоги проекта;
  • роль conf/routes в сопоставлении URL;
  • создание контроллеров и функций действий;
  • использование шаблонов Twirl для динамических представлений;
  • запуск приложения Play.

Далее вы научитесь создавать RESTful API с помощью Play!

Можно начать бесплатно

Изучай Scala с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
39
Уроки
143

Часто задаваемые вопросы

Урок «Основы Play Framework» бесплатный?

Да — полный текст урока «Основы Play Framework» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Scala for Backend Engineering & Functional Programming, подпишись на CoddyKit PRO. Курс Scala for Backend Engineering & Functional Programming содержит 3 уроков всего.

Чему я научусь в уроке «Основы Play Framework»?

Начните работу с Play, изучите его архитектуру и настройте своё первое веб-приложение. Ты практикуешь Scala for Backend Engineering & Functional Programming с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Scala for Backend Engineering & Functional Programming?

Предыдущий опыт не требуется. Scala for Backend Engineering & Functional Programming на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.

Сколько времени занимает урок «Основы Play Framework»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Scala for Backend Engineering & Functional Programming?

Да. Каждый урок Scala for Backend Engineering & Functional Programming включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы Play Framework
  2. Создание RESTful API с Play
  3. Интеграция с базами данных через Slick/Doobie
← Назад к Scala for Backend Engineering & Functional Programming