2022-11-21 15:21 Doba čtení: 12 min

8 Populární Python Frameworks pro sestavení API

Objevte sílu tvorby API s Pythonem! Podívejme se, jak na to.

Python se stal jedním z nejvšestrannějších programovacích jazyků současnosti. Jeho oblíbenost pramení z čitelnosti, méně komplikované syntaxe a snadného osvojení. Během posledních desetiletí Python našel uplatnění v mnoha oblastech a pro různé typy aplikací. Používá se v automatizaci, vývoji webových aplikací, analýze dat, tvorbě softwaru a také pro rozhraní pro programování aplikací (API), na které se zaměříme v tomto článku.

Uživatelská rozhraní aplikací slouží k získávání informací nebo k využívání funkcí prostřednictvím internetu. Například, můžete naprogramovat aplikaci v Pythonu, která využívá Twitter API ke spouštění funkcí, jež dokáží shromažďovat tweety s konkrétním hashtagem. API usnadňují vývojářům využití různých technologií pro tvorbu aplikací prostřednictvím předdefinovaných operací a propojují tak různé systémy.

Naštěstí existuje mnoho frameworků pro Python, ale ne všechny jsou primárně určeny pro API. Projdeme si některé z těch nejpoužívanějších, které můžete využít pro vývoj API.

Django REST

Django REST je framework pro tvorbu REST API založený na Pythonu, který je mezi vývojáři velmi populární pro tvorbu webových API. REST (Representational State Transfer) je architektonický styl pro webovou komunikaci s daty. Pro komunikaci mezi počítači využívá protokol HTTP. GET, PUT, POST a DELETE jsou standardní metody používané v Django REST frameworku.

Django REST framework je nástroj pro tvorbu REST API pomocí Djanga. Poskytuje nám řadu funkcí navíc. Instalace Django REST frameworku je možná pomocí pip a jediného příkazu. Před instalací je ale potřeba mít nainstalovaný Python verze 3.5+ a Django.

Vlastnosti Django REST:

  • Webové rozhraní API s výbornou použitelností pro vývojáře
  • Několik vestavěných metod ověřování
  • Serializace, která podporuje zdroje dat ORM i non-ORM
  • Rozsáhlá a kvalitní dokumentace
  • Velmi aktivní komunitní podpora
  • Důvěra od organizací jako Red Hat, Mozilla, Heroku
  • Podpora automatického směrování URL v Djangu
  • Podpora testování, cachování, omezování atd.

Flask Restful

Flask Restful je rozšíření frameworku Flask, které vývojáři používají pro rychlou tvorbu REST API. Je známý pro tvorbu mikro webových služeb, protože je velmi lehký. Je rychlý a k inicializaci Flasku a k jeho použití pro tvorbu API stačí jen pár řádků kódu.

Nastavení je jednoduché a podporuje osvědčené postupy pro tvorbu API. Během několika posledních let byly do Flasku přidány mnohé funkce a nyní je stejně dobrý jako full-stack framework. Je to oblíbená volba webových vývojářů pro tvorbu webových aplikací a jejich API.

Vlastnosti Flask Restful:

  • Velmi lehký a snadno se instaluje
  • Poskytuje zdroje, které jsou základními stavebními kameny Flask Restful. Používá se pro přístup k různým HTTP metodám.
  • Obsahuje modul polí a dekorátor `marshal_with()` pro formátování dat
  • Umožňuje kontrolovat, která pole se mají zobrazit v odpovědi po vykreslení
  • Umožňuje přidávat vlastní pole a vstupy na základě typu dat
  • Poskytuje dekorátor `representation()` pro podporu dalších reprezentací, jako jsou XML, CSV, HTML

Falcon

Falcon je webový framework pro tvorbu robustních a vysoce výkonných backendů pro velké aplikace a mikroslužby. Falcon definuje API zdroje pomocí objektově orientovaného rozhraní založeného na třídách. Je kompatibilní s různými servery a platformami, protože je kompatibilní s WSGI.

Falcon využívá architektonický styl HTTP a REST, který se používá pro vytváření čistých návrhů. Hlavním mottem Falconu je dělat co nejméně, ale přesto být vysoce efektivní. Tento REST framework se zaměřuje na kvalitu.

Vlastnosti Falconu:

  • Vestavěný server a debugger pro vývoj
  • Lehký s minimálním nastavením
  • Primárně se používá pro rychlejší výkon
  • Mapování URI na zdroje je inspirováno REST
  • Podporuje směrování, protokoly HTTP, práci s médii, cookies a URI utility
  • Snadná integrace s NoSQL databázemi
  • Podporuje integrované unit testy
  • Podpora pro zabezpečené cookies
  • Kompatibilní s Python 2.7, 3.5+ a Pypy

Connexion

Connexion automaticky zpracovává požadavky HTTP a je založen na specifikaci OpenAPI, která je popsána ve formátu YAML. Na rozdíl od ostatních nástrojů, kde se specifikace generuje na základě Python kódu, Connexion umožňuje napsat specifikaci OpenAPI a namapovat koncové body na příslušné Python funkce. Jakmile popíšete REST API, Connexion se postará o jeho funkčnost.

Vlastnosti Connexion:

  • Na základě specifikace ověřuje požadavky a koncové body.
  • Zpracovává ověřování pomocí tokenů OAuth 2
  • Podporuje verzování API
  • Součástí je webové rozhraní Swagger Console, které umožňuje volat koncové body API.
  • Automaticky serializuje datové zatížení.

FastAPI

Jak už název napovídá, FastAPI je jedním z nejrychlejších a nejvýkonnějších Python frameworků pro tvorbu API. Jedná se o kompletní full-stack framework. S FastAPI můžete vyvíjet kód 200 až 300 % rychleji. Obliba FastAPI v Python komunitě rychle roste, aktuálně má více než 200 přispěvatelů a 28,6 tisíc hvězdiček.

FastAPI je postaven na specifikaci ASGI a primárně se používá pro tvorbu asynchronních webových aplikací. Níže naleznete některé z jeho vlastností.

  • Založen na otevřených standardech – OpenAPI, JSON schema, automatické generování klientského kódu
  • Uživatelské rozhraní Swagger pro volání a testování API z prohlížeče
  • Interaktivní dokumentace API
  • Snížení chyb generovaných vývojáři v kódu o 40 %
  • Minimalizuje duplikaci kódu
  • Intuitivní podpora editorů (VSCode/PyCharm) s automatickým doplňováním
  • Vestavěné zabezpečení a autentizace
  • Systém vkládání závislostí pro automatické zpracování všech závislostí
  • Plně kompatibilní se Starlette a Pydantic
  • Neomezená podpora pluginů
  • Podpora testování aplikací pomocí PyTest
  • Podpora SQL databází, NoSQL databází, GraphQL

Hug

Hug je příjemný mikrorámec, který umožňuje tvorbu API, CLI a lokálních balíčků. Umožňuje vytvořit API jednou a použít jej kdekoli v kódu. Hug používá Cython pro kompilaci a využívá zdroje pouze v případě potřeby, což mu pomáhá dosahovat velmi vysokého výkonu.

Hug můžete nainstalovat pomocí pip jediným příkazem. Je to jeden z nejčistších způsobů, jak vytvořit HTTP REST API v Pythonu 3. Při vytváření API Hug odděluje závislosti verzí a rozhraní od obchodní logiky API. Nabízí několik rozhraní, která usnadňují vývoj API pro vývojáře.

Vlastnosti Hug:

  • Řídí se filozofií vytvořit jednou a použít kdekoli
  • Zpřístupňuje API logiku prostřednictvím více rozhraní (CLI, HTTP nebo lokální funkce)
  • Poskytuje modul `hug.test` pro testování celého Python stacku API
  • Čistá a srozumitelná dokumentace

Eve

Eve je postaven na Flasku a Cerberusu. Cílem tohoto Python frameworku je zjednodušit a urychlit vývoj API. Snadno vytváří RESTful webové služby, které jsou vysoce přizpůsobitelné. Tento framework je oblíbený především pro projekty střední velikosti.

Vlastnosti Eve:

  • Podpora celé řady CRUD operací
  • Podpora přizpůsobitelných koncových bodů, stránkování, řazení, filtrování
  • Pokročilé funkce jako autentizace, omezení rychlosti, cachování
  • Snadná integrace s SQL databázemi, MongoDB, Elasticsearch a Neo4j
  • Okamžitá podpora pro validaci dat
  • Podpora CORS (Cross-Origin Resource Sharing)
  • Podpora pro několik událostí pro lepší logování

Cornice

Cornice je REST framework pro Pyramid, který poskytuje pomocníky pro tvorbu a dokumentaci REST webových služeb. Pyramid je navržen pro škálování aplikací. Cornice se automaticky řídí specifikací HTTP, pokud je to možné.

Vlastnosti Cornice:

  • Jedna cesta v Cornice se rovná jedné službě
  • Pokud jsou data neplatná, automaticky po validaci obsahu vyvolá chybu 400
  • Přidá do vašich služeb podporu CORS (Cross-Origin Resource Sharing)
  • Pro autorizaci se používají seznamy řízení přístupu (ACL) z Pyramidu
  • Vrátí 406 Not Acceptable pro neplatný typ média s chybovou zprávou obsahující všechny podporované typy obsahu
  • Podporuje předponu URL pro všechny vaše trasy
  • Využívá Tox, nástroj příkazového řádku v Pythonu pro automatizované testování

Závěr

Toto byl můj seznam populárních Python frameworků pro tvorbu API. Doufám, že vás tento přehled zaujal. Pro ocenění toho, co tyto frameworky nabízejí, je potřeba si je vyzkoušet. Na co čekáte? Vyberte si jeden z těchto REST frameworků a pusťte se do tvorby API v Pythonu.

Dále můžete prozkoumat JavaScript frameworky pro tvorbu API.

Petra Kovářová
Autor
Czechia

Sleduje mobilní technologie, Android/iOS a praktické návody pro uživatele.

Předchozí článek
8 nejlepších aplikací pro zvýraznění textu na Android a iPhone
Další článek
Jak najít důvod restartu Linuxu?