Szkolenie API: REST i GraphQL
Zaprojektujesz API w REST i GraphQL, z którego inne zespoły skorzystają bez dopytywania.
Zapytaj o termin Pobierz program (PDF)Dobre API to umowa między zespołami. Jeśli jest czytelne, przewidywalne i dobrze opisane, integracja z nim zajmuje godziny, a nie tygodnie. Na szkoleniu projektujesz i budujesz API w Node.js: najpierw w stylu REST, potem w GraphQL, a na koniec łączysz je z innymi systemami. To szkolenie o projektowaniu kontraktu, a nie o frameworku: te same zasady przeniesiesz do Javy czy .NET.
Dużo miejsca zajmuje to, co wychodzi dopiero na produkcji: błędy, ponawianie zapytań, limity i zmiany wersji, które nie psują klientów.
Program
3 dni
- Protokół HTTP w praktyce
- Metody i ich semantyka: bezpieczne i idempotentne
- Nagłówki:
Content-Type,Accept,Cache-Control,ETag - Kody odpowiedzi:
200,201,204,400,401a403,404,409,422,429
- Projektowanie zasobów REST
- Nazwy zasobów, relacje i zagnieżdżanie adresów
- Filtrowanie, sortowanie i paginacja (offset i kursor)
- Wersjonowanie API i wycofywanie: nagłówki
DeprecationiSunset
- Modelowanie i walidacja danych
- JSON: typy, daty, liczby i wartości
null - JSON Schema jako źródło prawdy o kształcie danych
- Walidacja wejścia i wyjścia na serwerze
- JSON: typy, daty, liczby i wartości
- Obsługa błędów
- Jednolity format błędów według RFC 9457 (Problem Details)
- Błędy walidacji przypisane do konkretnych pól
- Dokumentacja i kontrakt
- OpenAPI 3.1 i 3.2: opis endpointów, schematów, przykładów i strumieni
- Podejście contract-first i generowanie klientów
- Interaktywna dokumentacja dla innych zespołów
- GraphQL
- Schemat, typy, zapytania i mutacje
- Resolvery i kontekst zapytania
- Problem N+1 i DataLoader
- Ewolucja schematu:
@deprecatedzamiast wersjonowania - Ograniczanie głębokości i kosztu zapytań (pokaz)
- Uwierzytelnianie i autoryzacja
- Klucze API, tokeny Bearer i JWT
- OAuth 2.0: Authorization Code z PKCE według RFC 9700 (Security BCP)
- OpenID Connect: logowanie użytkownika a dostęp do API
- Uprawnienia na poziomie zasobu i pola: BOLA i BOPLA z OWASP API Security Top 10
- Integracje z innymi systemami
- Webhooki: podpisy, ponowienia, kolejność zdarzeń i deduplikacja po stronie odbiorcy
- WebSockets i Server-Sent Events do powiadomień na żywo
- Ponawianie zapytań z backoffem i klucze idempotencji
- Ochrona API
- Rate limiting:
429,Retry-Afteri nagłówkiRateLimitorazRateLimit-Policy(szkic IETF) - CORS i limity rozmiaru zapytań
- Rate limiting:
- Testowanie API
- Testy integracyjne endpointów
- Testy kontraktowe na podstawie OpenAPI
- Ręczne sprawdzanie zapytań z linii poleceń i w klientach HTTP
Bezpieczeństwo szerzej omawia szkolenie Bezpieczeństwo WWW, a komunikację na żywo szkolenie WebSockets.
Dla kogo?
- Dla programistów, którzy budują lub rozwijają API.
- Dla programistów frontendu, którzy chcą rozumieć, jak powstaje API.
- Dla zespołów, które integrują kilka systemów i tracą dni na niejasne błędy i zerwane kontrakty.
Co musisz umieć?
- Programować w JavaScript i znać podstawy Node.js.
- Rozumieć, czym jest zapytanie HTTP i format JSON.
Czego się nauczysz?
- Dobierzesz metodę i kod odpowiedzi HTTP tak, żeby klient wiedział, co się stało.
- Zaprojektujesz zasoby REST z paginacją, wersjonowaniem i czytelnymi błędami, a stare pola wycofasz bez psucia klientów, także w GraphQL.
- Opiszesz API w OpenAPI i zwalidujesz dane przez JSON Schema.
- Zbudujesz serwer GraphQL bez problemu N+1.
- Zabezpieczysz API tokenami, OAuth 2.0 z PKCE i uprawnieniami do zasobów, a logowanie oprzesz na OpenID Connect.
- Połączysz systemy webhookami z podpisami, ponowieniami i odpornością na duplikaty.
- Ochronisz API limitem zapytań i przetestujesz jego kontrakt.
Trener
Piotr Kowalski
W branży IT od 2008 roku. Od 2014 jest mentorem dla wielu developerów. Jako trener spędził na sali szkoleniowej kilka tysięcy godzin, a na LinkedIn ma 52 rekomendacje. Każde jego szkolenie to dawka solidnej wiedzy oraz humoru.
Zorganizujmy to szkolenie w Twoim zespole
Napisz, z czym pracujecie i na jakim poziomie jest grupa. Odpowiem z propozycją programu dopasowanego do Waszego projektu.
Zapytaj o szkolenie Pobierz program (PDF) Zobacz wszystkie szkolenia