Course Code: bpfapi
Duration: 21 hours
Course Outline:

  1. Mikroserwisy vs aplikacje monolityczne 
  2. Przegląd funkcjonalności FastAPI:
    1. Struktura kodu
    2. Jak stworzyć aplikację?
    3. Dependency injection
  3. Przetwarzanie synchroniczne i asynchroniczne
    1. Wprowadzenie
    2. Wykorzystanie bibliotek zewnętrznych
  4. Budowanie modeli danych z wykorzystaniem pydantic, w tym:
    1. Walidacje
    2. Metadane
    3. Modele zagnieżdżone
  5. Obsługa zapytań - przesyłanie:
    1. Danych w postaci JSON
    2. Plików
  6. Obsługa odpowiedzi:
    1. JSON
    2. Strumieniowanie 
    3. Własne kody odpowiedzi
  7. Uwierzytelnianie żądań:
    1. Basic auth
    2. JWT
  8. Integracja z SQLALchemy:
    1. Obsługa transakcji
    2. Tworzenie modeli, walidacja, modele hybrydowe
    3. Najlepsze praktyki w pracy z SQLAlchemy
  9. Zadania w tle:
    1. Zadania w tle FastAPI
    2. Integracja z celery:
      1. Wybór backendu
      2. Konfiguracja
      3. Słabe / mocne strony poszczególnych rozwiązań
    3. Budowanie aplikacji z wykorzystaniem FastAPI + celery + redisa jako brokera
  10. FastAPI a modele uczenia maszynowego:
    1. Najlepsze praktyki eksponowania modelu za pomocą FastAPI
    2. Wykorzystanie cookiecutter
  11. Testowanie aplikacji
    1. Testy a asynchroniczność
    2. Wprowadzenie narzędzia pytest
    3. Mockowanie i patchowanie
    4. Mierzenie pokrycia kodu testami
    5. Integracja pytesta ze środowiskiem CI/CD
    6. Wykorzystanie testcontainers do przeprowadzania testów funkcjonalnych
  12. Praca nad projektem
  13. Podsumowanie