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.g8Polecenie 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 jakroutes(mapowanie adresów URL) iapplication.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 runAplikacja 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/routesw 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
- Podstawy Play Framework
- Tworzenie API RESTful za pomocą Play
- Integracja z bazą danych za pomocą Slick/Doobie