Tworzenie REST API w Pythonie
Czas trwania szkolenia:3 dni (24h)
Kod kursu:PYTHON/RESTAPI
Poziom zaawansowania:
O szkoleniu Tworzenie REST API w Pythonie
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?
- Programistów Python
- Programistów 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ść podstawowych zapytań SQL
- 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
- Możliwość przeprowadzenia szkolenia w oparciu o dwa różne frameworki - FastAPI lub Flask
- Szkolenie przechodzi przez poszczególne etapy tworzenia REST API, którym odpowiadają kolejne commity w repozytorium
Cele szkolenia
- Poznanie podstaw protokołu HTTP potrzebnych do stworzenia własnego REST API
- Opanowanie elementów frameworka FastAPI, odpowiadających za obsługę zapytań HTTP
- Nauka pracy z relacyjnymi bazami danych, w tym używając ORM
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
- Używanie Annotated
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