
Istotne. Ten warsztat został nagrany w Java 17. Testy w tym warsztacie również odnoszą się do Java 17. Wiesz już na tym etapie o nowszych mechanizmach wprowadzanych w Java, ale my tutaj będziemy skupiać się na Springu, a nie na nowościach w Javie.
Jeżeli natomiast chodzi o Springa. Niektóre warsztaty zostaną zaprezentowane na podstawie Springa w wersji 5, a niektóre na podstawie Springa w wersji 6. Z Twojej perspektywy nie ma to znaczenia, gdyż nowości wprowadzane w Spring 6 i wyżej nie dotyczą tego, czego uczysz się na tym poziomie nauki. Chcemy jednak wykorzystać takie podejście, żeby pokazać Ci moment przejścia ze Springa 5 na Spring 6.
Gdy będziesz szukać zależności do Maven/Gradle, znajdziesz również Springa w wersji 6 lub wyższej. Zaznaczam to z tego powodu, że jeżeli my w materiałach będziemy pokazywali Springa 5, to Ty możesz realizować ten sam materiał na podstawie Springa 6 (Spring Boot 3). Poruszane przez nas zagadnienia nie ulegają wtedy zmianie. My stale monitorujemy sytuację i jeżeli wychodzą jakieś nowości, które mają znaczenie z perspektywy ścieżki Zajavka, są one dodawane w tej ścieżce. Podsumowując, możesz spokojnie korzystać z JDK 17 i Spring Boot 3, możesz również korzystać z najnowszej Javy i najnowszego Springa. Jeżeli w Springu pojawi się coś nowego i istotnego, będzie to dodawane do ścieżki Zajavka ?. Najwygodniej jednak z Twojej perspektywy będzie korzystać z wersji przedstawionych na nagraniach.
Wiemy już czym jest Spring i jakie są jego bardzo podstawowe możliwości. Wiemy już również na tym etapie, jak możemy testować aplikacje napisane w Spring, poznaliśmy wiele różnych rodzajów testów. Do tego dowiedzieliśmy się już, w jaki sposób można połączyć Spring z komunikacją z bazami danych. Na tym etapie wiesz już, czym jest JPA oraz Hibernate i do czego służą. Wiesz już również, jak można wykorzystać Springa do ułatwienia pracy z JPA. Do tego rozumiesz już, czym są wątki. Potrafisz już również napisać aplikację opartą o wzorzec MVC. Co więcej, wiesz już również, czym jest Spring Boot, dzięki czemu jesteś w stanie napisać aplikację szybko, bez poświęcania czasu na konfigurację. Przyszła najwyższa pora, żebyśmy omówili, czym jest REST API oraz jak można z nim pracować przy wykorzystaniu Spring framework.
W tym materiale dowiemy się, czym jest API, powtórzymy sobie, czym jest architektura klient-serwer oraz przypomnimy sobie, czym jest protokół.
Uwaga! Chcemy przypomnieć pewną kwestię. Mamy nadzieję, że na tym etapie kursu jest już dla Ciebie jasne, że biblioteki/zależności/to, że one nie działają jest czymś normalnym. No właśnie ?. I tak samo jest ze Spring Security. To znaczy, twórcy Springa lubią często zmieniać to jak powinno się skonfigurować Spring Security Beany (Spring już nie jest backwards compatible). Tak samo jest tutaj. Początkowe materiały dot. Spring Security zostały nagrane w Spring Boot 3.0.0 i przedstawione podejście do Spring Security działa do wersji Spring Boot 3.0.7. Od wersji 3.1.0, przedstawione podejście Security robi się Deprecated w kilku miejscach. Dlatego właśnie materiały dotyczące Spring Security są podzielone, żeby pokazać Ci kilka podejść i jak poradzić sobie z takimi problemami. Czyli jeżeli pokazujemy dokładnie wersję, którą trzeba wykorzystać, to z takiej wersji korzystaj. Jeżeli ten sam kod nie działa Ci na wersji np. Spring Boot 3.1.0 lub wyższej, to spokojnie, w pewnym momencie, wrócimy do tego w kursie. Piszemy to po to, żeby zaznaczyć Ci, że to normalne i tak jest na co dzień w pracy.
I jak poszedł test? Mam nadzieję, że dobrze, bo teraz możemy przejść do części praktycznej. Przechodzimy do projektu, który zostanie napisany przy wykorzystaniu wiedzy, którą pozyskaliśmy w tym warsztacie. Kontynuujemy cykl Car Dealership.
Na dole wpisu znajdziesz dwa pliki. Plik Workshop21-project-1-car-dealership zawiera opis zagadnienia. Drugi plik w21-project-1-car-dealership-sources.zip zawiera kod wypracowanej wcześniej części projektu Car Dealership. Kod ten ma Ci pomóc wystartować z kolejną częścią projektu Car Dealership.
Poniżej znajdziesz film, w którym Karol wyjaśnia zagadnienie do realizacji. Obejrzyj go, zanim przystąpisz do pisania kodu.
Zachęcamy Cię do rozwiązania zagadnienia samodzielnie, bez patrzenia na gotowe przykłady. Jeżeli natomiast chcesz skorzystać z przygotowanego przez nas przykładowego rozwiązania - będzie ono dostarczone w kolejnym poście. Możesz albo od razu przejść do zapoznania się z gotowym rozwiązaniem, albo możesz zobaczyć, jak takie rozwiązanie wypracowuje Karol. Wtedy też będziesz mógł/mogła posłuchać jego przemyśleń w trakcie rozwiązywania tych zagadnień ?.
W kursie Spring REST dowiesz się, jak wystawiać i konsumować REST API z wykorzystaniem frameworka Spring. Omówimy również metody dokumentowania swojego API, możliwości testowania API oraz podejście do zabezpieczania REST API.
Tematyka Kursu
REST API
Czym jest REST API: Definicja i podstawowe zasady REST API.
Metody HTTP: Przegląd metod HTTP używanych w REST API.
Zalety stosowania REST API: Korzyści płynące z wykorzystania REST API.
Notatki: Kluczowe informacje.
Spring i REST API
Mapowanie żądań: Jak mapować żądania HTTP w Spring.
Budujemy własne REST API: Tworzenie własnego REST API z wykorzystaniem Spring.
Klasa ResponseEntity: Wykorzystanie ResponseEntity do zarządzania odpowiedziami HTTP.
HTTP Error Handling: Obsługa błędów HTTP w aplikacjach Spring.
Notatki: Kluczowe informacje.
Konsumujemy REST API
Czym jest Java Client: Wprowadzenie do klienta Java dla REST API.
Przykład Java Client: Przykłady wykorzystania klienta Java do konsumowania REST API.
Notatki: Kluczowe informacje.
OpenApi vs Swagger
Czym jest OpenApi: Definicja i zastosowanie OpenApi.
Czym jest Swagger: Definicja i zastosowanie Swagger.
Jak dokumentować swoje API: Najlepsze praktyki dokumentowania API.
Jak Java Client może wykorzystać Swagger Contract: Przykłady wykorzystania kontraktu Swagger przez klienta Java.
Notatki: Kluczowe informacje.
REST API vs Testy
Jednostkowe testy controllerów: Jak pisać jednostkowe testy kontrolerów.
@WebMvcTest: Wykorzystanie adnotacji @WebMvcTest do testowania kontrolerów.
Czym jest RestAssured: Wprowadzenie do narzędzia RestAssured.
Czym jest WireMock: Wprowadzenie do narzędzia WireMock.
Notatki: Kluczowe informacje.
REST API vs Security
Jak podejść do Security w REST API: Najlepsze praktyki zabezpieczania REST API.
Przykład z Cookies: Jak zabezpieczyć REST API za pomocą cookies.
Security vs REST API vs Testy: Testowanie zabezpieczeń w REST API.
Security vs REST API vs Sesje: Zarządzanie sesjami w REST API.
Security vs REST API vs SwaggerUI: Integracja zabezpieczeń z SwaggerUI.
Notatki: Kluczowe informacje.
Test i Projekt
Test: Zadania sprawdzające zdobytą wiedzę.
Projekt: Praktyczne zastosowanie zdobytej wiedzy w projekcie.
Podczas naszego kursu online uczestnik zdobędzie praktyczne umiejętności i wiedzę w następujących obszarach:
Zrozumienie, czym jest REST API oraz jakie metody HTTP są wykorzystywane.
Poznanie zalet stosowania REST API w aplikacjach webowych.
Umiejętność mapowania żądań HTTP i tworzenia własnego REST API z wykorzystaniem Spring.
Wykorzystanie klasy ResponseEntity oraz obsługa błędów HTTP.
Zrozumienie, czym jest Java Client oraz jak korzystać z klienta Java do konsumowania REST API.
Wykorzystanie OpenApi i Swagger do dokumentowania REST API.
Tworzenie dokumentacji API oraz wykorzystanie Swagger Contract przez klienta Java.
Pisanie jednostkowych testów kontrolerów oraz wykorzystanie @WebMvcTest.
Wprowadzenie do narzędzi RestAssured i WireMock do testowania REST API.
Najlepsze praktyki zabezpieczania REST API oraz zarządzania sesjami i cookies.
Integracja zabezpieczeń z SwaggerUI oraz testowanie zabezpieczeń w REST API.
Warsztat ten jest 21. warsztatem w ramach ścieżki Zajavka. Oczywiście możesz go realizować niezależnie od innych moich materiałów.