0Pricing
Scala for Backend Engineering & Functional Programming · Lekcja

Podstawy Play Framework

Rozpocznij pracę z Play, poznaj jego architekturę i skonfiguruj pierwszą aplikację internetową.

Podstawy Play Framework to bezpłatna lekcja Scala for Backend Engineering & Functional Programming na CoddyKit. To lekcja 1 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Scala for Backend Engineering & Functional Programming, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Scala for Backend Engineering & Functional Programming zawiera 3 lekcji w sumie.

Wprowadzenie do Play Framework

Witamy w Play Framework! Play to wydajny, otwartoźródłowy framework aplikacji internetowych dla Scali i Javy.

Został zaprojektowany do tworzenia nowoczesnych aplikacji internetowych i interfejsów API o wysokiej skalowalności, z naciskiem na produktywność programistów i wydajność.

Reaktywny i asynchroniczny rdzeń

Play jest oparty na reaktywnych fundamentach i wykorzystuje wewnętrznie Akka. Oznacza to, że domyślnie obsługuje żądania asynchronicznie i nie blokuje wykonywania.

  • Reaktywny: wydajnie obsługuje wiele jednoczesnych żądań.
  • Asynchroniczny: operacje nie blokują wątku serwera.
  • Bezstanowy: został zaprojektowany z myślą o skalowaniu horyzontalnym, dzięki czemu świetnie nadaje się do mikrousług.

Tworzenie projektu Play

Aby rozpocząć nowy projekt Play, użyjesz SBT (Scala Build Tool) wraz z szablonem startowym Play. Upewnij się, że SBT jest zainstalowane.

Uruchom to polecenie w terminalu:

sbt new playframework/play-scala-seed.g8

Polecenie utworzy nowy katalog projektu z podstawową strukturą aplikacji Play Scala.

Układ projektu Play

Projekt Play ma dobrze zdefiniowaną strukturę katalogów:

  • app/: zawiera kod źródłowy Scala (kontrolery, modele i widoki).
  • conf/: zawiera pliki konfiguracyjne, takie jak routes (mapowanie adresów URL) i application.conf.
  • public/: zawiera zasoby statyczne (JavaScript, CSS i obrazy).
  • project/: zawiera pliki definicji kompilacji SBT (np. build.sbt).
  • test/: zawiera testy aplikacji.

Mapowanie adresów URL za pomocą `routes`

Plik conf/routes ma kluczowe znaczenie. Definiuje sposób mapowania żądań HTTP (metody i ścieżki) na konkretne akcje kontrolerów w aplikacji.

Każdy wiersz określa metodę HTTP, ścieżkę URL oraz metodę kontrolera, którą należy wywołać.

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

Tworzenie kontrolerów Play

Kontrolery to obiekty (lub klasy) Scala obsługujące przychodzące żądania HTTP. Zawierają funkcje akcji, które przetwarzają żądania i zwracają wyniki.

Kontrolery zazwyczaj rozszerzają BaseController i otrzymują wstrzyknięty obiekt ControllerComponents.

package controllers

import play.api.mvc._
import javax.inject._

@Singleton
class HomeController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
  // Action functions go here
}

Definiowanie logiki akcji

Funkcja akcji to główna logika kontrolera. Przyjmuje niejawny obiekt Request i zwraca obiekt Result (np. Ok, NotFound lub Redirect).

Blok Action { ... } opakowuje kod, dzięki czemu staje się on prawidłową akcją Play.

// Inside HomeController
def sayHello(name: String) = Action { implicit request =>
  Ok(s"Hello, $name! Welcome to Play.")
}

Dynamiczny HTML z użyciem Twirl

Play używa szablonów Twirl (plików .scala.html) do generowania dynamicznych odpowiedzi HTML. Pozwalają one osadzać kod Scala bezpośrednio w kodzie HTML.

Szablony są bezpieczne typowo i kompilowane, dzięki czemu błędy są wykrywane na wczesnym etapie.

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

Uruchamianie aplikacji Play

Po skonfigurowaniu projektu i zdefiniowaniu tras oraz kontrolerów możesz uruchomić aplikację za pomocą SBT.

Przejdź w terminalu do głównego katalogu projektu i wykonaj:

sbt run

Aplikacja zwykle uruchomi się pod adresem http://localhost:9000.

Quiz: komponenty Play

Sprawdźmy, czy rozumiesz podstawy Play Framework.

Powtórzenie: podstawy Play

Wykonałeś pierwsze kroki z Play Framework! Omówiliśmy:

  • czym jest Play i na czym polega jego reaktywny charakter,
  • jak skonfigurować nowy projekt za pomocą SBT,
  • najważniejsze katalogi projektu,
  • rolę pliku conf/routes w mapowaniu adresów URL,
  • jak tworzyć kontrolery i funkcje akcji,
  • korzystanie z szablonów Twirl do tworzenia dynamicznych widoków,
  • uruchamianie aplikacji Play.

W następnej części nauczysz się tworzyć interfejsy API RESTful za pomocą Play!

Często zadawane pytania

Czy lekcja „Podstawy Play Framework” jest bezpłatna?

Tak — pełny tekst „Podstawy Play Framework” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Scala for Backend Engineering & Functional Programming, przejdź na CoddyKit PRO. Kurs Scala for Backend Engineering & Functional Programming zawiera 3 lekcji w sumie.

Co nauczysz się w „Podstawy Play Framework”?

Rozpocznij pracę z Play, poznaj jego architekturę i skonfiguruj pierwszą aplikację internetową. Ćwiczysz Scala for Backend Engineering & Functional Programming z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Scala for Backend Engineering & Functional Programming?

Nie wymagamy żadnego doświadczenia. Scala for Backend Engineering & Functional Programming w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 3.

Ile czasu zajmuje lekcja „Podstawy Play Framework”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Scala for Backend Engineering & Functional Programming?

Tak. Każda lekcja Scala for Backend Engineering & Functional Programming zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy Play Framework
  2. Tworzenie API RESTful za pomocą Play
  3. Integracja z bazą danych za pomocą Slick/Doobie
← Powrót do Scala for Backend Engineering & Functional Programming