Python: FastAPI tworzenie REST API
Czas trwania szkolenia:3 dni (24h)
Kod kursu:PYTHON/FASTAPI
Poziom zaawansowania:
Szkolenie na zamówienie
Szkolenie dostosowane do potrzeb Twojego zespołu. Dostępne wyłącznie na zamówienie.
- Dostosowany program
- Indywidualna wycena
- Dowolny termin
O szkoleniu Python: FastAPI tworzenie REST API
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Programiści Python
- Programiści innych języków
Wymagania
- Szkolenie nie jest dla początkujących, chociaż przyswojenie nowej składni nie powinno być problemem dla osób nawet z niewielkim doświadczeniem programistycznym
- Mile widziana znajomość protokołu HTTP i modelu request-response
- Mile widziana umiejętność poruszania się w środowisku Linux
Zalety
- W trakcie szkolenia uczestnicy stworzą przykładową aplikację gotową do użycia i wdrożenia na serwer
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Opanowanie elementów frameworka FastAPI, odpowiadających za obsługę zapytań HTTP
- Zdobycie wiedzy dotyczącej uruchamiania aplikacji FastAPI w środowisku produkcyjnym
- Poznanie mechanizmów FastAPI odpowiedzialnych za testowanie aplikacji
Program
Wprowadzenie do FastAPI
- Instalacja FastAPI i środowiska uruchomieniowego
- Wbudowany serwer HTTP (nasłuchiwanie lokalne oraz na wszystkich interfejsach)
- IDE oraz narzędzia dla programistów
Protokół HTTP
- Request-Response
- Metody protokołu (czasowniki HTTP)
- Nagłówki żądań i odpowiedzi
- Statusy
- Mimetype
- Uwierzytelnianie
- Pobieranie danych z serwera
- Przesyłanie danych do serwera
- Debugging
- HTTPS
- Uwierzytelnianie
Type annotations
- Typy
- Sekwencje
- Mapy
- Funkcje
- Klasy
Projekty FastAPI
- Konwencja nazewnicza
- Podział projektu na wiele plików
- Mechanizm importów
- Reużywalność
- Wersjonowanie API
Schematy Pydantic
- Omówienie Pydantic
- Tworzenie schematów
- Konwersja i walidacja
Widoki synchroniczne
- URL Routing
- Obsługa zapytań GET, POST, PUT, DELETE
- Parametry w URL, parametry żądania
- Nagłówki zapytań i odpowiedzi
- Schematy wejściowe i wyjściowe
- Kody statusu, tagi
Dokumentacja
- Swagger, redoc
- Korzystanie ze Swagger w procesie wytwarzania oprogramowania
Modele bazy danych
- Modele w SQLAlchemy
- Typy pól
- Relacje między modelami
- Parametry pól, unikalność, wartości null, indeks w bazie, wymagalność pól
- Migracje schematów bazy za pomocą Alembic i ich obsługa
- Schematy dla modeli ORM
- Tworzenie zapytań przy pomocy ORM
- Tworzenie obiektów, zapis do bazy, aktualizacja
- Pobieranie obiektów, filtrowanie, łączenie zapytań, sortowanie
- Podglądanie zapytań do bazy danych
Middleware
- Mechanizm przetwarzania żądań
- Tworzenie własnych middleware
Autoryzacja i uwierzytelnianie
- System uwierzytelniania JSON Web Token (JWT)
- Logowanie
- Mechanizm sesji
- Definiowanie uprawnień dla użytkownika i grup
- Ograniczanie dostępu do widoków
Websockets
- Omówienie technologii
- Prosta implementacja
Widoki asynchroniczne
- Korzystanie z widoków asynchronicznych
- Ograniczenia
- Biblioteki async
Testowanie API
- Debugging
- Fixtures
- CI/CD aplikacji FastAPI
Aplikacja FastAPI w środowisku produkcyjnym
- Uvicorn, ASGI (async WSGI)
- Docker i Kubernetes
Architektura mikroserwisowa
- Architektura mikroserwisowa
- Skalowalność
- BFF - Backend for Frontend
- API Gateway
- Load Balancing