FastAPI Vysvětlení za 5 minut nebo méně

FastAPI, rámec Pythonu, který vám umožňuje vyvíjet webová rozhraní API, byl v posledních několika letech populární.

API (Application Programming Interface) je základem moderní architektury. Umožňují modularizaci a oddělení aplikací. To vám umožní rychle vytvářet aplikace a usnadňuje jejich údržbu.

Proto je dobré se naučit FastAPI, pokud plánujete používat Python k vývoji webových aplikací. Tento článek vás naučí vše o základech FastAPI.

Co je FastAPI?

FastAPI je webový framework založený na Pythonu. V posledních letech přitahuje velkou pozornost. Jeho vývojová struktura je podobná Flasku, který byl nejoblíbenější volbou pro ty, kteří se chtěli naučit vývoj webu v Pythonu.

FastAPI se snadno používá a jeho dokumentace je jasná a snadno sledovatelná. FastAPI používají tech giganti jako Microsoft, Netflix a Uber.

FastAPI má všechny funkce, které byste očekávali od tvůrce API, ale neomezuje se na ně. Můžete jej použít k připojení zpětného WSGI, o kterém většina uživatelů neví.

Primárním účelem FastAPI je vytvářet koncové body API, jak název napovídá. To lze provést stejně efektivně jako vrácení dat ze slovníku Pythonu v JSON nebo pomocí interaktivního uživatelského rozhraní Swagger OpenAPI.

FastAPI se neomezuje pouze na API. Lze jej použít téměř pro vše, co webový framework dělá, od doručování webových stránek s enginem šablon Jinja2 po obsluhu aplikací založených na WebSockets.

Níže jsou uvedeny výhody FastAPI:

  • FastAPI vám umožňuje ověřit datový typ vývojáře, i když používáte vnořené dotazy JSON.
  • Nabízí funkci automatického doplňování, která umožňuje vytvářet aplikace v kratším čase a vyžaduje méně úsilí.
  • Je kompatibilní se slovníkem OpenAPI a JSON Schema, který vám umožňuje ověřovat a anotovat dokumenty JSON.
  • FastAPI vám umožňuje rychle sestavit GraphQL API pomocí knihovny Pythonu s názvem graphene–python.
  • FastAPI je kompatibilní s OAuth 2.0 i externími poskytovateli.
  10 rychlých kroků ke zvýšení výkonu Macu

Níže jsou uvedeny nevýhody FastAPI:

  • FastAPI je stále nový rámec, takže komunita pokynů je malá. Nemá dostatek externích vzdělávacích informací, jako jsou knihy, kurzy nebo tutoriály.
  • Protože musíme ve FastAPI spojit všechny komponenty dohromady, hlavní soubor může být velmi velký nebo přeplněný.

Jedinečné vlastnosti FastAPI

Toto jsou jedinečné funkce, díky kterým je FastAPI dosud nejoblíbenějším webovým rámcem Pythonu.

  • Vysoký výkon: FastAPI je výkonnější než jiné rámce pythonu. Rámec FastAPI orientovaný na rychlost z něj dělá nejlepší volbu. Vše se scvrkává na vyšší rychlost a lepší výkon díky využití funkcí Starlette, vytváření API a vytváření připravených kódů.
  • Rychlé kódování: Vývojáři nemusejí vytvářet nic nového s kódy připravenými k produkci. To urychlí proces přibližně o 200 % až 30 %. FastAPI běží na Starlette a má mnoho dalších funkcí, které lze použít k vytváření rozhraní API pro ověřování dat a serializaci. Rámec již obsahuje všechny potřebné komponenty, což zkracuje čas potřebný pro kódování.
  • Minimální chyby: Rámec má funkci automatického dokončování, která automaticky vloží většinu kódu do kusu. To minimalizuje možnost chyb a zlepšuje kvalitu výstupu.
  • Snadno pochopitelné: FastAPI nedělá nic kromě moderního Pythonu. Je to upravená verze Pythonu 3.6 a neobsahuje žádnou novou syntaxi. Framework může používat každý, kdo dobře rozumí jazyku.
  • Minimální úsilí: FastAPI generuje dokumentaci OpenAPI automaticky s minimálním úsilím vývojáře. Tyto informace lze nalézt v adresáři aplikace/doc. Dokumentace obsahuje podrobné informace o koncových bodech API, návratových kódech, parametrech odezvy a další podrobnosti.
  • Podpora editoru: Všechny součásti rámce jsou navrženy s ohledem na automatické dokončování. Je to jednoduché a dává vývojářům možnost vytvářet hotový kód. Můžete také otestovat kód přímo z vašeho prohlížeče pomocí interaktivní dokumentace.
  • Otevřené standardy: Webový rámec FastAPI Python je obrovskou výhodou. Rámec je kompatibilní s OpenAPI, dříve známým jako Swagger, které umožňuje vytvářet API.

Instalace FastAPI

Zde jsou jednoduché kroky k instalaci FastAPI na Linux nebo Windows.

#1. Instalace FastAPI na Linux

Nainstalujte Python 3 na Linux pomocí příkazu níže:

sudo apt install python3

Nainstalujte pip na Linux pomocí příkazu níže:

sudo apt install python3-pip

Dále nainstalujte FastAPI na Linux.

pip install fastapi

Budete také potřebovat server ASGI. Nainstalujte tedy uvicorn pomocí pip.

pip install "uvicorn[standard]"

#2. Instalace FastAPI na Windows

Nainstalujte Python 3 na Windows pomocí obchodu Microsoft. Tím se také nainstaluje pip.

  4 platformy pro pronájem nejlepších služeb airbrush

Dále nainstalujte FastAPI na Windows.

pip install fastapi

Nakonec nainstalujte ASGI server uvicorn.

pip install "uvicorn[standard]"

Nová doba použití FastAPI

Zde jsou některá nová použití FastAPI:

Automatizované dokumenty

Dokumentace o typech API a koncových bodech je nutností. Tento problém lze vyřešit pomocí OpenAPI, Swagger UI a ReDoc. Ty jsou automaticky zabaleny s FastAPI. To vám umožní soustředit se na svůj kód a nenastavovat nástroje.

Zadaný Python

FastAPI používá deklarace typu Python 3.6 (díky Pydantic). To znamená, že používá funkci Pythonu, která vám umožňuje určit typ a typ proměnné. Tento rámec to skvěle využívá a poskytuje vám vynikající podporu editorů. Automatické dokončování funguje úžasně.

Validace

Pydantic již do tohoto rámce integruje ověřování. Lze provést ověření standardních typů Pythonu a ověření vlastních polí.

Zabezpečení a ověřování

Toto je důležitá součást každého API. Často kód jen opakujeme, tak proč něco z něj nezačlenit do našeho frameworku? FastAPI dělá přesně tohle.

Knihovna podporuje HTTP Basic, tokeny OAuth2 (tokeny JWT) a klíče API hlavičky.

Asynchronní povaha

FastAPI ve výchozím nastavení podporuje asynchronní koncové body, díky čemuž je váš kód jednodušší a efektivnější. To je značná výhoda oproti Flasku.

FastAPI vs. Flask: Klíčové rozdíly

Rozdíly v použití

FastAPI, full-stack platforma, která poskytuje vše, co potřebujete pro vytvoření vašeho API, je k dispozici. Flask je na druhé straně mikro framework a nenabízí všechny stejné funkce jako FastAPI. Baňka může být užitečná, pokud potřebujete rychle vytvořit prototyp nápadu nebo vytvořit jednoduchou webovou aplikaci.

Flask a FastAPI se velmi liší ve způsobu jejich použití. Rámec Flask lze použít k prototypování nových nápadů a aplikací, zatímco rámec FastAPI lze použít k vytváření rozhraní API. Pomocí něj můžete rychle vytvořit backendový server bez znalosti kódování.

Malé weby a webové aplikace

FastAPI se snadno používá, je lehký a lze jej použít pro vývoj webů a aplikací v malém měřítku. Zahrnuje objektově relační vrstvu (ORM), která zpracovává datové objekty v rámci aplikace, takže k nim můžete rychle přistupovat pomocí kódování.

  Jak někoho vyhledat na Tinderu

Vrstva ORM sleduje vaše databáze a umožňuje vám zapomenout na jejich ruční aktualizaci, když jsou z webu nebo aplikace přidány, upraveny nebo odstraněny nové informace.

WSGI vs. ASGI

Možná jste si všimli základního rozdílu: Flask používá pro své standardní rozhraní WSGI, zatímco FastAPI používá ASGI. Jak již bylo zmíněno, WSGI zpracovává požadavky synchronně. Žádosti jsou zpracovávány postupně. Člověk nemůže začít, dokud není dokončen poslední úkol.

ASGI zpracovává požadavky asynchronně. To umožňuje plnění úkolů vlastním tempem a nevyžaduje, aby čekali na ostatní.

Společenství

Dalším rozdílem je komunita. Flask je komunita, která existuje déle než FastAPI. To znamená skvělou dokumentaci a vnější pomoc od ostatních, kteří o Flasku píší.

FastAPI je stále novým projektem, takže komunita se musí ještě rozrůst. To znamená, že ačkoli je k dispozici dostatek dokumentace, není k dispozici mnoho vnější pomoci.

Níže jsou shrnuty tabulky pro FastAPI vs. Flask:

Ověření dat FastAPIFlask je vestavěno. Nemá ověřování dat. K dispozici je podpora asynchronních úloh Podpora asynchronních úloh není k dispozici Implementuje specifikace ASGIPodporuje aplikace WSGIAutomatická podpora dokumentůRuční podpora dokumentůChybová zpráva se zobrazuje ve formátu JSONChybová zpráva se zobrazuje na stránkách HTMLPodpora menší komunityBohatá podpora komunity

FastAPI nebo Flask: Který z nich byste si měli vybrat?

FastAPI a Flask mohou rychle nastavit webové servery Python a aplikace pro datovou vědu. Oba vyžadují stejné úsilí pro nasazení, ale který rámec je nejlepší pro váš další projekt?

FastAPI je nejlepší volbou tam, kde nejvíce záleží na rychlosti a výkonu. Tento rámec je nejlepší, pokud vytváříte CDN a očekáváte značný provoz. FastAPI vám umožňuje stáhnout si framework a okamžitě jej používat. Šablona projektu vám ušetří čas a pomůže vám ušetřit čas.

FastAPI je lepší volba než Flask, když vytváříte API. To platí zejména při zvažování mikroslužeb a dalších úvah. Flask je nejlepší volbou, pokud již máte mnoho nástrojů postavených kolem tohoto rámce.

Závěr

Takže to bylo vše o FastAPI. FastAPI nabízí vynikající rychlost a výkon. Tento rámec je nejlepší, pokud budujete síť pro doručování obsahu a očekáváte provoz. Inovativní rámec a šablona projektu FastAPI vám pomohou ušetřit čas.

Flask by mohl být lepší pro vytváření API, zejména mikroslužeb. FastAPI je také lepší než Flask. Baňka je lepší volbou, pokud ji již intenzivně používáte.

Můžete také prozkoumat některé populární Python Frameworks k sestavení API.