Статьи

Ваше первое веб-приложение с Play и Scala

Сегодня мы собираемся разработать простое игровое приложение с использованием Scala. Для этого в нашей системе должен быть установлен sbt .

После установки мы выдаем команду

1
sbt new playframework/play-scala-seed.g8

Затем нам предоставляется интерактивный терминал для передачи ценной информации.

1
2
3
4
5
name [play-scala-seed]: PlayStarter
organization [com.example]: com.gkatzioura
scala_version [2.11.8]:
scalatestplusplay_version [2.0.0]:
play_version [2.5.13]:

Тогда давайте проверим, что мы только что создали

1
2
cd playstarter
sbt run

Перейдите по адресу http: // localhost: 9000, и вы получите базовый мир Play hello.

Смотря на структуру нашего проекта, как и ожидалось, у нас есть каталог с нашими контроллерами. Рассмотрим наш запрос как действие. Мы выдаем запрос, и мы получаем представление HTML.

1
2
3
def index = Action { implicit request =>
    Ok(views.html.index())
  }

Как вы можете видеть, html, который отображается, находится в каталоге views. Play поставляется с Twirl в качестве движка шаблонов. В Conf / Routers мы можем видеть, как маршрут настроен на действие index

Давайте добавим простое действие к тому контроллеру, который возвращает текстовое тело.

1
2
3
def greet(name: String) = Action {
    Ok("Hello " + name)
  }

Мы должны отредактировать файл маршрутов, чтобы указать новый маршрут и параметр get

1
GET     /greet                      controllers.HomeController.greet(name)

Затем выполните запрос на http: // localhost: 9000 / greet? John

На следующем шаге мы добавим новый маршрут с параметром пути

Предположим, мы хотим получить общее количество входов в систему для пользователя. Мы реализуем действие, которое отправляет поддельный номер

1
2
3
def loginCount(userId: String) = Action {
    Ok(14)
  }

И тогда мы регистрируем маршрут

1
GET     /user/:userId/login/count          controllers.HomeController.loginCount(userId)

Выполнив запрос http: // localhost: 9000 / user / 18 / login / count, мы получим число 14.

Подводя итог, мы только что реализовали наше первое приложение Play. Мы также реализовали некоторые базовые действия для нашего контроллера и достигли передачи некоторых параметров пути и запроса.