Blog IT, Blog Marketing

FastApi

FastApi

Marcin Sarna , 03.02.2021 r.

Szybki framework dla Pythona do łatwego budowania API.

Czym się przede wszystkim cechuje?

FastAPI to nowoczesna, szybka (wysokowydajna) platforma internetowa do tworzenia interfejsów API w języku Python 3.6+. Kluczowe cechy to:

  • Szybkość działania: bardzo wysoka wydajność, na równi z NodeJS i Go (dzięki Starlette i Pydantic). Jeden z najszybszych dostępnych frameworków Pythona.
  • Szybkość kodowania: według twórców zwiększa szybkość tworzenia funkcji o około 200% do 300%.
  • Mniejsza ilość błędów: redukcja około 40% błędów wywołanych przez człowieka (programistów).
  • Intuicyjny: Świetna obsługa edytora. Uzupełnianie (completion). Mniej czasu spędzonego na debugowaniu.
  • Łatwość obsługi: zaprojektowany tak, aby był łatwy w użyciu i nauce. Mniej czasu na czytanie dokumentów.
  • Przemyślany: minimalizuje konieczność powielania kodu.
  • Solidność: uzyskasz kod gotowy na produkcję, z automatyczną i interaktywną dokumentacją.
  • Oparty na standardach: w pełni kompatybilny z otwartymi standardami API: OpenAPI (wcześniej znanym jako Swagger) i JSON.

Wymagania? Python 3.6+ i to wszystko. FastAPI korzysta z uznanych technologii: Starlette (obsługa części internetowej) oraz Pydantic (operacje na danych).

Jeśli tworzysz aplikację wiersza poleceń, która ma być używana w terminalu (zamiast internetowego interfejsu API) warto skorzystać z Typera. To taki mniejszy brat FastAPI.

Nie musisz uczyć się nowej składni, metod lub klas określonej biblioteki itp. Tylko standardowy Python 3.6+. Jeśli zaczynasz też z samym Pythonem, zajrzyj tutaj.

Instalacja

Nic prostszego: pip install fastapi. Będziesz także potrzebował serwer ASGI, taki jak Uvicorn czy Hypercorn: pip install uvicorn[standard].

Przykładowa aplikacja

Utwórz plik main.py o zawartości:

from typing import Optional
from fastapi import FastAPI
app = FastAPI()

@app.get("/")
def read_root():
return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
return {"item_id": item_id, "q": q}

Uruchom serwer przez uvicorn main:app –reload. W przeglądarce otwórz teraz stronę http://127.0.0.1:8000/items/5?q=somequery. Zobaczysz odpowiedź zawierającą JSONa, na przykład: {"item_id": 5, "q": "somequery"}.

Właśnie stworzyłeś pierwsze API:

  1. Czeka ono na żądania http na ścieżkach / oraz /items/{item_id}.
  2. Obie ścieżki opierają się na żądaniach GET
  3. Ścieżka /items/{item_id} przyjmuje parametr item_id, który powinien być int.
  4. Ścieżka /items/{item_id} przyjmuje też opcjonalny parametr q, będący str.

Dokumentacja

Pod adresem http://127.0.0.1:8000/docs znajdziesz automatycznie wygenerowaną, interaktywną dokumentację dostarczoną przez Swaggera. Z kolei pod adresem http://127.0.0.1:8000/redoc możesz korzystać z alternatywnej dokumentacji wygenerowanej z użyciem ReDoc.

Sprawdź oferty pracy na TeamQuest

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej