Wyjaśnienie FastAPI w 5 minut lub mniej

FastAPI, framework Pythona, który umożliwia tworzenie internetowych interfejsów API, był popularny w ciągu ostatnich kilku lat.

API (Application Programming Interface) to podstawa nowoczesnej architektury. Umożliwiają modularyzację i oddzielenie aplikacji. Pozwala to na szybkie tworzenie aplikacji i ułatwia ich konserwację.

Dlatego dobrym pomysłem jest nauczenie się FastAPI, jeśli planujesz używać Pythona do tworzenia aplikacji internetowych. Ten artykuł nauczy Cię wszystkiego o podstawach FastAPI.

Co to jest FastAPI?

FastAPI to framework sieciowy oparty na Pythonie. W ostatnich latach cieszy się dużym zainteresowaniem. Jego struktura rozwoju jest podobna do Flaska, który był najpopularniejszym wyborem wśród tych, którzy chcieli nauczyć się programowania w Pythonie.

FastAPI jest prosty w użyciu, a jego dokumentacja jest przejrzysta i łatwa do zrozumienia. FastAPI jest używany przez gigantów technologicznych, takich jak Microsoft, Netflix i Uber.

FastAPI ma wszystkie funkcje, których można oczekiwać od konstruktora API, ale nie ogranicza się do nich. Możesz go użyć do zamontowania wstecznego WSGI, o czym większość użytkowników nie wie.

Głównym celem FastAPI jest budowanie punktów końcowych API, jak sugeruje nazwa. Można to zrobić tak wydajnie, jak zwrócenie danych ze słownika Pythona w formacie JSON lub użycie interaktywnego interfejsu Swagger OpenAPI.

FastAPI nie ogranicza się do API. Może być używany do prawie wszystkiego, co robi platforma internetowa, od dostarczania stron internetowych z silnikiem szablonów Jinja2 po obsługę aplikacji opartych na WebSockets.

Poniżej przedstawiamy zalety FastAPI:

  • FastAPI pozwala zweryfikować typ danych programisty, nawet przy użyciu zagnieżdżonych zapytań JSON.
  • Oferuje funkcję autouzupełniania, która pozwala tworzyć aplikacje w krótszym czasie i wymaga mniej wysiłku.
  • Jest kompatybilny ze słownikiem OpenAPI i JSON Schema, co pozwala na walidację i opisywanie dokumentów JSON.
  • FastAPI pozwala szybko zbudować interfejs API GraphQL przy użyciu biblioteki Pythona o nazwie graphene–python.
  • FastAPI jest kompatybilny z OAuth 2.0 oraz zewnętrznymi dostawcami.

Poniżej przedstawiono wady FastAPI:

  • FastAPI to wciąż nowy framework, więc istnieje niewielka społeczność wytycznych. Nie ma wystarczającej ilości zewnętrznych informacji edukacyjnych, takich jak książki, kursy lub samouczki.
  • Ponieważ musimy połączyć wszystkie komponenty w FastAPI, główny plik może stać się bardzo duży lub zatłoczony.

Unikalne funkcje FastAPI

Są to unikalne funkcje, które sprawiają, że FastAPI jest jak dotąd najpopularniejszym frameworkiem internetowym Pythona.

  • Wysoka wydajność: FastAPI jest bardziej wydajny niż inne frameworki Pythona. Zorientowana na szybkość struktura FastAPI sprawia, że ​​jest to najlepszy wybór. Wszystko sprowadza się do większej szybkości i lepszej wydajności poprzez wykorzystanie funkcji Starlette, tworzenie interfejsów API i tworzenie gotowych kodów.
  • Szybkie kodowanie: programiści nie muszą tworzyć niczego nowego dzięki kodom gotowym do produkcji. Przyspiesza to proces o około 200% do 30%. FastAPI działa na Starlette i ma wiele innych funkcji, które można wykorzystać do budowania interfejsów API do sprawdzania poprawności i serializacji danych. Ramy mają już wszystkie niezbędne komponenty, co skraca czas potrzebny na kodowanie.
  • Minimalne błędy: Framework posiada funkcję autouzupełniania, która automatycznie wstawia większość kodu do elementu. Minimalizuje to możliwość wystąpienia błędów i poprawia jakość wydruku.
  • Łatwe do zrozumienia: FastAPI nie robi nic poza nowoczesnym Pythonem. Jest to zmodyfikowana wersja Pythona 3.6 i nie zawiera nowej składni. Z frameworka może korzystać każdy, kto dobrze rozumie język.
  • Minimalny wysiłek: FastAPI automatycznie generuje dokumentację OpenAPI przy minimalnym wysiłku programisty. Informacje te można znaleźć w katalogu aplikacji/doc. Dokumentacja zawiera szczegółowe informacje o punktach końcowych interfejsu API, kodach powrotu, parametrach odpowiedzi i innych szczegółach.
  • Wsparcie redaktora: Wszystkie komponenty frameworka zostały zaprojektowane z myślą o autouzupełnianiu. To proste, dające programistom możliwość wyprodukowania gotowego kodu. Możesz także przetestować kod bezpośrednio z przeglądarki, korzystając z interaktywnej dokumentacji.
  • Otwarte standardy: framework sieciowy Python FastAPI to ogromna zaleta. Framework jest kompatybilny z OpenAPI, znanym wcześniej jako Swagger, który pozwala na tworzenie API.

Instalacja FastAPI

Oto proste kroki, aby zainstalować FastAPI w systemie Linux lub Windows.

# 1. Instalacja FastAPI w systemie Linux

Zainstaluj Python 3 w systemie Linux za pomocą poniższego polecenia:

sudo apt install python3

Zainstaluj pip w systemie Linux za pomocą poniższego polecenia:

sudo apt install python3-pip

Następnie zainstaluj FastAPI w systemie Linux.

pip install fastapi

Będziesz także potrzebował serwera ASGI. Więc zainstaluj uvicorn za pomocą pip.

pip install "uvicorn[standard]"

#2. Instalacja FastAPI w systemie Windows

Zainstaluj Python 3 w systemie Windows, korzystając ze sklepu Microsoft. Spowoduje to również zainstalowanie pip.

Następnie zainstaluj FastAPI w systemie Windows.

pip install fastapi

Na koniec zainstaluj uvicorn serwera ASGI.

pip install "uvicorn[standard]"

Nowe zastosowania FastAPI

Oto kilka nowych zastosowań FastAPI:

Dokumenty automatyczne

Niezbędna jest dokumentacja dotycząca typów interfejsów API i punktów końcowych. Ten problem można rozwiązać za pomocą OpenAPI, Swagger UI i ReDoc. Są one automatycznie pakowane za pomocą FastAPI. Pozwala to skoncentrować się na kodzie, a nie na konfigurowaniu narzędzi.

Wpisany Python

FastAPI wykorzystuje deklaracje typu Python 3.6 (dzięki Pydantic). Oznacza to, że używa funkcji Pythona, która pozwala określić typ i typ zmiennej. Ten framework doskonale go wykorzystuje, zapewniając doskonałe wsparcie edytora. Autouzupełnianie działa niesamowicie.

Walidacja

Pydantic już integruje walidację z tym frameworkiem. Można przeprowadzić walidację standardowych typów Pythona i niestandardowych walidacji pól.

Bezpieczeństwo i uwierzytelnianie

Jest to ważna część każdego interfejsu API. Często po prostu powtarzamy kod, więc dlaczego nie włączyć go w nasze ramy? FastAPI robi dokładnie to.

Biblioteka obsługuje tokeny HTTP Basic, OAuth2 (tokeny JWT) i klucze API nagłówka.

Charakter asynchroniczny

FastAPI domyślnie obsługuje asynchroniczne punkty końcowe, dzięki czemu Twój kod jest prostszy i bardziej wydajny. Jest to znacząca przewaga nad Flaskiem.

FastAPI a Flask: kluczowe różnice

Różnice w użytkowaniu

Dostępna jest platforma FastAPI, która zapewnia wszystko, czego potrzebujesz do zbudowania interfejsu API. Z drugiej strony Flask jest mikrostrukturą i nie oferuje wszystkich takich samych funkcji jak FastAPI. Flask może być przydatny, jeśli potrzebujesz prototypować pomysł lub szybko stworzyć prostą aplikację internetową.

Flask i FastAPI bardzo różnią się sposobem użycia. Framework Flask może być używany do prototypowania nowych pomysłów i aplikacji, podczas gdy framework FastAPI może być używany do budowania interfejsów API. Korzystając z niego, możesz szybko zbudować serwer zaplecza bez znajomości kodowania.

Małe strony internetowe i aplikacje internetowe

FastAPI jest prosty w użyciu, lekki i może być używany do tworzenia stron internetowych i aplikacji na małą skalę. Zawiera warstwę obiektowo-relacyjną (ORM), która obsługuje obiekty danych w aplikacji, dzięki czemu można szybko uzyskać do nich dostęp poprzez kodowanie.

Warstwa ORM śledzi Twoje bazy danych i pozwala zapomnieć o ręcznym ich aktualizowaniu, gdy nowe informacje są dodawane, modyfikowane lub usuwane ze strony internetowej lub aplikacji.

WSGI kontra ASGI

Być może zauważyłeś podstawową różnicę: Flask używa standardowego interfejsu WSGI, podczas gdy FastAPI używa ASGI. Jak wspomniano wcześniej, WSGI przetwarza żądania synchronicznie. Żądania są przetwarzane sekwencyjnie. Nie można rozpocząć, dopóki ostatnie zadanie nie zostanie zakończone.

ASGI obsługuje żądania asynchronicznie. Pozwala to na wykonywanie zadań we własnym tempie i nie wymaga czekania na innych.

Wspólnota

Kolejną różnicą jest społeczność. Flask to społeczność, która istnieje dłużej niż FastAPI. Oznacza to świetną dokumentację i pomoc z zewnątrz od innych, którzy piszą o Flasku.

FastAPI to wciąż nowy projekt, więc społeczność musi się jeszcze rozrosnąć. Oznacza to, że chociaż istnieje wystarczająca dokumentacja, nie ma zbyt wiele pomocy z zewnątrz.

Poniżej znajduje się podsumowanie tabel dla FastAPI vs. Flask:

FastAPIFlask Walidacja danych jest wbudowana. Nie ma walidacji danych. Dostępna jest obsługa zadań asynchronicznych. Obsługa zadań asynchronicznych jest niedostępna. Implementuje specyfikacje ASGI. Obsługuje aplikacje WSGI. Automatyczna obsługa dokumentów. Ręczna obsługa dokumentów. Komunikat o błędzie jest wyświetlany w formacie JSON. Komunikat o błędzie jest wyświetlany na stronach HTML.

FastAPI czy Flask: który wybrać?

FastAPI i Flask mogą szybko skonfigurować serwery WWW i aplikacje do nauki danych w języku Python. Oba wymagają takiego samego wysiłku przy wdrażaniu, ale który framework jest najlepszy dla Twojego następnego projektu?

FastAPI to najlepsza opcja, gdy szybkość i wydajność mają największe znaczenie. Ta struktura jest najlepsza, jeśli budujesz sieć CDN i oczekujesz znacznego ruchu. FastAPI umożliwia pobranie frameworka i natychmiastowe korzystanie z niego. Szablon projektu pozwoli Ci zaoszczędzić czas i pomoże Ci zaoszczędzić czas.

FastAPI jest lepszą opcją niż Flask podczas budowania interfejsów API. Jest to szczególnie prawdziwe, gdy brane są pod uwagę mikrousługi i inne kwestie. Flask to najlepszy wybór, jeśli masz już wiele narzędzi zbudowanych wokół tego frameworka.

Wniosek

Więc to było wszystko o FastAPI. FastAPI oferuje doskonałą szybkość i wydajność. Ta struktura jest najlepsza, jeśli budujesz sieć dostarczania treści i oczekujesz ruchu. Innowacyjny framework FastAPI i szablon projektu pomogą Ci zaoszczędzić czas.

Flask mógłby być lepszy do tworzenia interfejsów API, w szczególności mikrousług. FastAPI jest również lepszy niż Flask. Flask jest lepszym wyborem, jeśli już go intensywnie używasz.

Możesz także zapoznać się z niektórymi popularnymi frameworkami Pythona do tworzenia API.