1.1. About Program
Python: FastAPI
1.1.1. Polish
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