Architektura serwisu webowego Spring Boot
Model i udostępnienie danych

Model i udostępnienie danych

Model danych

Przejdź do pakietu pl.edu.agh.to.school.student i zapoznaj się z klasami, które się tam znajdują. Podstawową encją naszego programu będzie Student, więc pakiet będzie zawierał wszystkie narzędzia, potrzebne do jej obsługi. Na ten moment znajdziesz tam klasę modelową Student oraz (na razie pustą) usługę StudentService. W następnych krokach zadania dodawaj wszystkie nowe klasy do tego pakietu. Niem ma to znaczenia dla Springa, ale porządkuje kod zgodnie z podejściem domain-driven.

Kontroler

Kolejnym krokiem będzie przygotowanie kontrolera dla utworzonego powyżej obiektu. W tym celu utwórz klasę StudentController.

Do tej klasy dodaj adnotację @RestController oraz dodatkowo @RequestMapping z parametrem określającym ścieżkę do naszego kontrolera, np. "students".

W klasie utwórz metodę zwracającą listę studentów, analogicznie jak wcześniej w klasie GreetingController:

@RestController
@RequestMapping(path = "students")
public class StudentController {
    @GetMapping
    public List<Student> getStudents() {
        return List.of(new Student("Jan", "Kowalski", LocalDate.now(), "123456"));
   }
}

Uruchom kod i przejdź do http://localhost:8080/students (opens in a new tab) - powinien wyświetlić się stworzony obiekt studenta.

Warstwa usług

  1. Aby odseparować kontroler od danych, skorzystamy z warstwy usług. Wstrzyknij do StudentController klasę StudentService, podobnie jak to robiliśmy na poprzednich zajęciach.
  2. Przenieś do klasy StudentService metodę zwracającą listę studentów, a następnie wywołaj ją w metodzie getStudents() kontrolera (delegacja).
  3. Uruchom ponownie kod i przejdź do http://localhost:8080/students (opens in a new tab) - efekt powinien być identyczny, jak poprzednio.