Wersja demo obejmuje kod modułu 2. z poniższego spisu treści. Poszczególnym punktom odpowiadają commity. Przechodząc po kolejnych commitach można zobaczyć kolejne etapy budowania aplikacji.
Aby uruchomić API, należy wykonać w terminalu komendę
python -m uvicorn app.main:app --reload
gdzie app.main
to ścieżka do głównego pliku a app
to obiekt reprezentujący aplikację.
fastapi
uvicorn
SQLAlchemy
psycopg2-binary
python-dotenv
passlib[bcrypt]
python-jose[cryptography]
- Idea aplikacji webowej
- Protokół HTTP (klient, serwer, zasób, request, response)
- Endpoint, URL, URI
- Przykłady API oraz jak się z nimi komunikujemy
- Przegląd narzędzi (terminal, Postman, JSON viewer)
- Czym jest REST API
- Format JSON
- Type annotation w Pythonie
- Omówienie projektu
- Hello world
- Ścieżki i routing
- Metoda POST, request body
- Pydantic, request body model
- Pobranie konkretnego zasobu (path parameter)
- HTTPException i błąd 404
- JSONResponse zamiast słownika, domyślny
status_code
- Metoda DELETE, odpowiedź 204
- Metoda PUT
- Struktura projektu -
app.main:app
, modele do osobnego pliku - Struktura projektu - podział endpointów na osobne pliki
- Automatyczna dokumentacja (
/docs
,/redoc
)
- SQL (postgres), pgAdmin
- Konfiguracja bazy dla projektu
- Psycopg2
- Przechowywanie sekretów
- SQLAlchemy (ORM)
- Omówienie poszczególnych liter
- Implementacja operacji bazodanowych w psycopg2
- Implementacja operacji bazodanowych w SQLalchemy
- Model odpowiedzi
- Query parameters (sortowanie, filtrowanie)
- Hashowanie haseł
- Uwierzytelnianie i autoryzacja
- Middleware
- Frontend aplikacji