FastAPI
3 minuty czytania
FastAPI to nowoczesny framework do tworzenia aplikacji internetowych. Został stworzony z myślą o prostym i szybkim tworzeniu aplikacji, a także o ułatwieniu pracy developerom.
Framework FastAPI stał się bardzo popularny w ostatnich latach ze względu na swoją szybkość i wysoki poziom kontroli nad pisanym kodem.
API budowane za pomocą FastAPI pisze się szybko ze względu na zwięzły kod, minimalną jego duplikację, a także dobrą dokumentację. FastAPI jest w pełni kompatybilne ze standardem OpenAPI.
Zbudowanie prostego API ogranicza się do 9 linijek kodu.
from typing import Optional
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: Optional[str] = None):
return {"item_id": item_id, "q": q}
FastAPI posiada wbudowany moduł dokumentacji
FastAPI posiada wbudowany moduł generujący automatycznie dokumentację zarówno w formacie Swagger jak i ReDoc. Dokonując zmian w modelach danych z wykorzystaniem klasy BaseModel z Pydantic dostajemy zaktualizowaną i opisaną dokumentację pod URLem: http://localhost:8000/docs.
FastAPI - szybkość, bezpieczeństwo i duża społeczność
Wykorzystując takie moduły jak oauth2, http, PyJWT możemy uzyskać zabezpieczenia aplikacji takie jak OAuth2, czy też zabezpieczenie tokenem JWT. Dodatkowo wykorzystując odpowiednie middleware'y możemy narzucić inne standardy bezpieczeństwa, należą do nich chociażby CORS (Cross Origin Resource Sharing).
Popularność rozwiązań open-source mierzy się za pomocą liczby osób współtworzących daną aplikację. W przypadku FastAPI jest to 284 aktywnych kontrybutorów, a także 50 tysięcy osób aktywnie śledzących zmiany w frameworku. Dla porównania niegdyś najbardziej popularny Django posiada społeczność 61 tysięcy osób aktywnie śledzących zmiany, a także 2156 osób aktywnie kontrybuujących do zmian we frameworku.
Dodatkowo w niezależnych testach przeprowadzanych przez https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=composite&l=dbf0n3-7b&a=2&f=zik0zj-qmx0qn-zhwum7-zik0zi-z8kflr-yyku7z-zik0zj-zijunz-zik0zj-zik0zj-zik0zj-1kv uzyskuje jedno z najwyższych miejsc wśród framework'ów wokół których oparty jest rozbudowany ekosystem rozwiązań. Są szybsze rozwiązania, ale na pewno nie z taką społecznością programistów i dostępnych pluginów i wtyczek. Warto wspomnieć, że autor FastAPI, Samuel Colvin jest dostępny na Twitterze i nietrudno się z nim skontaktować w razie poważnych problemów związanych z narzędziem.
Middleware i zarządzanie stanem aplikacji
FastAPI umożliwia łatwe dodawanie middleware, czyli warstw pośrednich przetwarzających żądania i odpowiedzi. Można je wykorzystać do logowania, obsługi CORS, kompresji odpowiedzi czy zarządzania sesjami. Dodatkowo FastAPI pozwala na przechowywanie i zarządzanie stanem aplikacji poprzez obiekt app.state, który umożliwia np. przechowywanie połączeń do bazy danych lub innych zasobów współdzielonych między żądaniami. Dzięki temu aplikacja może być bardziej wydajna i dobrze zorganizowana.
Obsługa żądań i odpowiedzi
FastAPI oferuje intuicyjną i wydajną obsługę żądań HTTP oraz generowanie odpowiedzi. Dzięki wbudowanej walidacji danych, wykorzystującej system typowania Pythona, można w łatwy sposób zapewnić poprawność przesyłanych informacji. Aplikacja automatycznie sprawdza poprawność typów zmiennych i zwraca szczegółowe komunikaty błędów, co ułatwia debugowanie oraz poprawia bezpieczeństwo API.
FastAPI obsługuje różne formaty danych w żądaniach i odpowiedziach, takie jak JSON, XML czy dane formularzy. Można również korzystać z nagłówków HTTP, ciasteczek i parametrów zapytań do dostosowywania działania aplikacji. Ponadto, FastAPI wspiera asynchroniczne przetwarzanie żądań, co pozwala na obsługę dużej liczby zapytań bez blokowania zasobów serwera.
Ważnym elementem zarządzania odpowiedziami jest możliwość dostosowywania kodów statusu HTTP oraz zwracania niestandardowych komunikatów. FastAPI pozwala także na definiowanie niestandardowych formatów odpowiedzi, co ułatwia integrację z innymi systemami i zapewnia lepsze doświadczenie użytkownika API.
Dependency Injection w FastAPI
Dependency Injection (wstrzykiwanie zależności) to jedna z kluczowych funkcji FastAPI, pozwalająca na efektywne zarządzanie komponentami aplikacji. Mechanizm ten umożliwia definiowanie zależności, które mogą być automatycznie wstrzykiwane do widoków API, co znacząco ułatwia organizację kodu i poprawia jego czytelność.
Dzięki Dependency Injection można np. przekazywać połączenie do bazy danych, konfigurację aplikacji, obiekty sesji użytkownika czy usługi zewnętrzne w sposób deklaratywny. FastAPI samodzielnie zarządza cyklem życia zależności, co pozwala uniknąć problemów związanych z ręcznym zarządzaniem zasobami.
Mechanizm ten jest szczególnie przydatny w dużych projektach, gdzie poszczególne części aplikacji muszą współpracować ze sobą bez silnego powiązania. Wykorzystując Dependency Injection, można łatwo testować poszczególne moduły, mockować zależności oraz zwiększyć elastyczność aplikacji.
SPRAWDŹ SWOJĄ WIEDZE Z TEMATU fastapi
Pytanie
1/5
Obsługa baz danych
FastAPI wspiera integrację z różnymi bazami danych, zarówno relacyjnymi, jak i nierelacyjnymi. Można korzystać z popularnych narzędzi, takich jak SQLAlchemy, Tortoise ORM czy odmiany NoSQL, np. MongoDB. Dzięki asynchronicznej obsłudze operacji bazodanowych, FastAPI pozwala na efektywne zarządzanie połączeniami i wykonywanie zapytań bez blokowania głównego wątku aplikacji.
Jednym z kluczowych aspektów pracy z bazami danych w FastAPI jest zarządzanie sesjami połączeń. Aby zapewnić bezpieczeństwo i wydajność, aplikacja może korzystać z puli połączeń oraz mechanizmów transakcyjnych. Dobrą praktyką jest także stosowanie zależności do przekazywania sesji bazodanowej do endpointów API, co pozwala na lepszą organizację kodu i uniknięcie wycieków zasobów.
FastAPI pozwala również na łatwe serializowanie obiektów bazodanowych do formatu JSON, dzięki czemu można w prosty sposób zwracać dane użytkownikom API. Możliwość walidacji i konwersji danych poprzez Pydantic ułatwia pracę z danymi wejściowymi i minimalizuje ryzyko błędów. Wsparcie dla migracji baz danych, np. za pomocą narzędzia Alembic, pozwala na efektywne zarządzanie schematem bazy w trakcie rozwoju aplikacji.
Nasza oferta
Web development
Dowiedz się więcejMobile development
Dowiedz się więcejE-commerce
Dowiedz się więcejProjektowanie UX/UI
Dowiedz się więcejOutsourcing
Dowiedz się więcejPowiązane artykuły
DVC: Jak zarządzać danymi w projektach uczenia maszynowego dzięki Data Version Control
7 sty 2025
W dzisiejszych czasach, gdzie nauka o danych gwałtownie rozwija się i generuje coraz to więcej informacji, kluczowe jest efektywne zarządzanie nimi. DVC, czyli Data Version Control, to narzędzie, które pozwoli Ci na skuteczną kontrolę wersji danych w projektach związanych z uczeniem maszynowym. W tym artykule poznasz podstawy DVC, dowiesz się jak je dobrze wykorzystać i jak to narzędzie może przyspieszyć Twoją pracę.

Modular Monolith: Wprowadzenie do nowoczesnej architektury monolitycznej
20 gru 2024
Czy możemy połączyć zalety monolitu i mikroserwisów? Wyjaśniamy koncepcję Modularnego Monolitu, nowoczesnego podejścia do projektowania aplikacji monolitycznych. Te praktyki pomagają zorganizować kod w łatwy do zrozumienia, skalowalny i łatwy do utrzymania sposób. Dowiedz się, jak zastosować tę koncepcję w swoim projekcie.
Algorytmy mrówkowe: Niewidzialna siła stojąca za nowoczesnymi rozwiązaniami technologicznymi
17 lut 2024
Algorytmy mrówkowe, zwane też metodami mrówkowymi, są niezwykle fascynującym elementem sztucznej inteligencji. Wymyślone na podstawie obserwacji naturalnego świata, te potężne narzędzia programistyczne wykorzystywane są we współczesnych rozwiązaniach technologicznych, choć często przeocza się ich rolę. Ta niewidzialna siła jest u podstaw wielu innowacji IT, tworząc m.in. efektywne sieci dostaw oraz optymalizując różnorodne procesy biznesowe.
Tworzenie inteligentnych chatbotów przy użyciu ChatGPT API
19 sty 2024
W dobie technologicznej rewolucji, inteligentne chatboty zyskują na znaczeniu wśród firm pragnących automatyzować swoją obsługę klienta. Narzędziem, które zrewolucjonizowało tę dziedzinę jest ChatGPT API. W tym artykule przeprowadzę Cię przez proces wdrożenia tego potężnego narzędzia.
Spam Score: Zrozumienie jego istoty i wpływu na SEO Twojej witryny
12 lut 2025
Spam Score to wskaźnik stworzony przez Moz, określający, jak bardzo Twoja strona internetowa przypomina te, które Google oznaczyło jako spam. Wiadomość 'spamowa' może znacząco obniżać ranking SEO Twojej strony, negatywnie wpływając na jej widoczność i doprowadzając do spadków w ruchu. W tym artykule omówimy, jak zrozumieć naturę Spam Score i jak zarządzać tym wskaźnikiem, aby optymalizować wyniki SEO.
Czym jest LaMDA? Wprowadzenie do modelu językowego od Google
12 lut 2025
LaMDA - model językowy opracowany przez giganta branży technologicznej, Google, zrewolucjonizował sposób, w jaki maszyny interpretują język naturalny. Zapewnia on nowy poziom interakcji człowieka z komputerem, wykraczający daleko poza dotychczasowe granice. Nasz przewodnik pomoże Ci zrozumieć, na czym polega ta innowacja.
Zobacz wszystkie artykuły