Spring REST
Opis
Obecnie powszechnym standardem udostępniania usług jest REST API - oparta o HTTP, ugruntowana wieloletnimi wdrożeniami praktyka. Szkolenie Spring REST ma za zadanie przygotować uczestników do tworzenia REST API z wykorzystaniem Spring dostarczając praktycznej wiedzy i zbioru dobrych wzorców.
Szczegółowy program
Moduł 1.
Założenia REST
- Koncept REST
- Szczegóły protokołu HTTP
- Metody HTTP
- Topologia wyników
- Poziomy dojrzałości
- Konwencje tworzenia URI
- Co znaczy RESTful
- Hypermedia
Moduł 2.
Wprowadzenie do SpringMVC i WebFlux
- Przegląd Spring Framework
- Dependency Injection
- AOP
- Wzorzec MVC
- Architektura SpringMVC/WebFlux
- Komponenty SpringMVC/WebFlux
Moduł 3.
Wprowadzenie do Spring Boot
- Koncepcja Spring Boot
- Autokonfiguracja SpringMVC
- Tworzenie projektu Spring Boot z poziomu spring.io
- Tworzenie projektu z poziomu IDE (IntelliJ Ultimate)
- Bazowy projekt REST
- Tworzenie kontrolerów REST
- @RestMapping, @RequestMapping, @GetMaping, @PostMapping etc.
- Dopasowywanie ścieżek i negocjacja zawartości
- Używanie parametrów zapytania oraz ścieżki
- Używanie RequestEntity
- Zwracanie wyników
- Zwracanie wyników z użyciem ReponseEntity
- Autokonfiguracja WebFlux
- HttpMessageReader i HttpMessageWriter
- Różnice w tworzeniu kontrolerów reaktywnych w odniesieniu do SpringMVC
- Przykładowa aplikacja
Moduł 4.
Klienty REST
- Postman
- Użycie RestTemplate
- API RestTemplate
- Praca z ResponseEntity
- Obsługa błędów dla RestTemplate
- Użycie WebClient dla komunikacji reaktywnej
- API WebClient
- Obsługa błędów
- Autentykacja z klientami REST
- Netflix Feign Client
Moduł 5.
Obsługa błędów
- Odpowiedzi błędów
- Walidacja
- Eksternalizacja komunikatów błędów
- Własny obsługa błędów po stronie serwera (ExceptionHandler, ExceptionAdvice)
- Własna obsługa błędów po stronie klienta RestTemplate
- Własna obsługa błędów po stronie klienta WebClient
- Własna obsługa błędów po stronie klienta FeignClient
Moduł 6.
Aspekty zaawansowane
- Aukonfiguracja i własna konfiguracja źródła danych
- Współpraca z Spring Data
- Wersjonowanie
- Stronicowanie
- Sortowanie
- Bezpieczeństwo w SpringMVC
- Bezpieczeństwo w WebFlux
- Testowanie z Spring Test
- Testowanie kontrolerów
- Testowanie z MockMVC
- Testowanie integracyjne
Moduł 7.
Dokumentacja
- Swagger
- SwaggerUI
- Dostosowanie Swaggera
- Konfiguracja kontrolerów
- Konfiguracja UI
Moduł 8.
HATEOAS
- Czym jest HATEOAS
- JSON Hypermedia Types
- HAL