FastAPI: tworzenie aplikacji REST
Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
- Do każdego szkolenia które wymaga jakiegokolwiek oprogramowania dostarczamy skonfigurowane, gotowe hosty w chmurze. Dzięki temu uczestnik nie musi nic instalować na swoim komputerze (i bić się z blokadami korporacyjnymi). Połączenie następuje przez zdalny pulpit lub SSH - w zależności od szkolenia.
Program szkolenia
- Wstęp do REST API
- Metody
- Statusy HTTP
- Sposób działania
- Nagłówki HTTP
- Hello World w FastAPI
- Zdefiniowanie routera
- Start servera uvicorn
- Automatyczne restart serwera przy zmianie kodu
- Zapytania do serwera za pomocą Curl oraz Postman
- Konfiguracja projektu
- Config z biblioteką dotenv
- Jak sprawnie zacząć projekt od zera?
- Start projektu z biblioteką cookiecutter
- Jak definiować endpointy
- GET
- POST
- PUT
- DELETE
- Dependency injection
- Czym jest wzorzec dependency injection?
- Uwierzytelnianie
- Połączenia z bazą
- Logging
- Znaczenie DI w testach
- Middleware
- Czym są?
- Droga przetwarzania zapytania w FastAPI?
- CQRS
- Logging
- Sync vs Async
- Różnice
- Jak zdefiniować asynchroniczne endpointy
- Pydantic
- Jak definiować modele z użyciem pydantic.BaseModel?
- Walidacja z użyciem Pydantic
- Serializacja danych z użyciem Pydantic
- Przydatne metody
- Dokumentacja kodu
- Typowanie w Pythonie
- Sprawdzanie typów w Pythonie - biblioteka Typing
- Sprawdzenie błędów typów z użyciem Flake8
- Obsługa baz danych SQL
- Wstęp do SQLAlchemy
- Migracje z użyciem biblioteki Alembic
- JSON Web Token
- O JWT
- Budowa
- Jak generować
- Typy tokenów
- Bezpieczeństwo JWT
- Zabezpieczenie endpointów na podstawie JWT
- Zabezpieczenie endpointu z użyciem FastAPI scope
- Logika biznesowa w projekcie FastAPI
- Repository pattern
- Klasa protocol w Pythonie
- Warstwa serwisów
- Swagger
- Generowanie dokumentacje API
- Testy
- Dependency injection w testach jednostkowych
- mock.patch vs dependency injection
- Testowanie za pomocą Pytest
- Testy API
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!O skoleniu w skrócie
Warsztatowe szkolenie z biblioteki FastAPI - najszybciej zdobywającej popularność biblioteki Python do tworzenia aplikacji webowych.
Dla kogo?
Aby uczestniczyć w tym szkoleniu potrzebna jest podstawowa wiedza z programowania w języku Python - jak definiować klasy, pisać funkcje i uruchamiać skrypty w języku Python. Podstawowa znajomość protokołu HTTP oraz Git będzie wyjaśniona podczas wstępu jednak wskazane jest wcześniejsze rozumienie działania
Charakter szkolenia
Szkolenie ma charakter warsztatowy. W trakcie szkolenia uczestnicy otrzymają praktyczną wiedzę na temat budowania aplikacji z użyciem FastAPI.
Przebieg szkolenia
- Szkolenie zaczniemy od stworzenia projektu w git z pomocą cookiecutter.
- Następnie dowiemy się jak dodać do aplikacji pierwszy endpoint w FastAPI służący do zwracania informacji na temat aktualnych ofert pracy.
- Napiszemy testy sprawdzające zwracane dane do enepointów, które planujemy napisać podczas rozwijania aplikacji do zarządzania ofertami pracy.
- Następnie skupimy się na dostarczeniu funkcjonalności spełniające wymagania opisane testami.
- Uczestnicy dowiedzą się gdzie zawrzeć logikę biznesową aplikacji - stworzymy warstwę serwisów obsługującą zarządzanie ofertami pracy oraz użyjemy jej w endpointach.
- Dowiemy się jak zapisywać rekordy do bazy przy użyciu biblioteki SQLAlchemy.
- Dowiemy się jak uruchamiać aplikacje w Docker compose.
Prowadzący szkolenie: Łukasz Jaworowski
Zawodowo programista od 8 lat. Typowy praktyk lubiący rozwiązywanie problemów biznesowych od koncepcji do gotowego programu. Skupiony na technologiach backendowych. Zaczynał od Javy, większość czasu w pracy spędził programując systemy przetwarzania danych oraz aplikacji webowych z użyciem języka Python i AWS. Od 2021 roku pracuje jako lider techniczny w projektach Golang w firmie z obszaru security/crypto. Doświadczenie zdobywał w startupach, Fintechach, bankach oraz realizując projekty jako freelancer. W wolnym czasie poza programowaniem lubi sport i inne formy rywalizacji.
Stanowisko robocze
Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia
Sprawdź, co mówią o nas ci, którzy nam zaufali
Trenerzy kategorii Python
Programista z ponad 12 letnim stażem, pracował dla klientów z Norwegii, Szwecji, Wielkiej Brytanii oraz Niemiec. Pracował dla takich firm jak Schibsted Tech Polska oraz PrimeQ tworząc strony o bardzo dużym natężeniu ruchu, skrypty automatyzujące pracę innych, w tym także crawlery. Trener, który na sali spędził ponad 5000h prowadząc szkolenia z baz danych, programowania w Pythonie i PHP.
Kacper uważa, że język programowania to tylko narzędzie w rękach doświadczonego dewelopera, dlatego nieustannie lubi uczyć się nowych rzeczy oraz zarażać miłością do programowania innych (stąd pewnie ten kanał na Youtubie -> Kacper Sieradziński).
Programista Pythona od 2018 roku z backgroundem w matematycznym modelowaniu procesów fizycznych. Specjalizuje się w obszarach związanych z pozyskiwaniem, przetwarzaniem i analizą danych. Jako data scientist pracował w projektach dla branż takich jak telekomunikacja, media czy finanse. Doświadczony szkoleniowiec, który lubi i potrafi przekazywać wiedzę. W wolnym czasie podróżuje lub pracuje nad nowymi szkoleniami.
DevOps Enginner z zamiłowaniem do części "Dev" wspomnianej roli. Pasjonat ideologii DevOps, ze szczególnym uwzględnieniem potoków dostarczania oprogramowania. Swoje doświadczenie opiera o dostarczanie skalowalnych usług mikroserwisowych oraz projekty wdrażanie w AWSie dla dużych klientów. W codziennej pracy jest zaangażowany na wielu poziomach cyklu dostarczania oprogramowania. Od wielu lat tworzy narzędzia dla deweloperów, które skracają cykl, ułatwiają prace i definiują standardy w zespołach.
Posiada doświadczenie w zarzadzaniu zespołami developerskimi. Absolwent Politechniki Warszawskiej, swoja karierę w IT zaczynał właśnie od szkoleń w JSystems, które pozwoliły mu nabrać wiatru w żagle i pomogły spełnić marzenia o karierze w IT. Dziś w JSystems jako trener zakresu AWS, który zachęci was do korzystania z chmury Amazona i pokaże, że nie jest to takie trudne i "kosztowne".
Certyfikowany inżynier z zakresu architektury, DevOps i Networkingu w AWS. Zwolennik "przemyślanego" podejścia zwinnego w prowadzeniu projektów. Charakteryzuje go podejście do wyzwan z "Can do attitude" i "Get Things Done". W swojej pracy najbardziej ceni możliwość rozwiazywania problemów biznesowych w oparciu o najnowsze technologie chmurowe. Zwolennik praktyki nad teorią. Ostatnio mocno zaangażowany w adaptacje możliwości jakie niesie ze sobą platforma Backstage.io.