Hatékony API-k létrehozása Python segítségével. Vizsgáljuk meg, hogyan!
A Python napjaink egyik legsokoldalúbb programozási nyelve. Népszerűségét az olvashatóság, a kevésbé bonyolult szintaxis és a könnyű tanulás miatt szerezte. Az elmúlt néhány évtizedben a Pythont több tartományban használták több alkalmazáshoz. Használták automatizáláshoz, webfejlesztéshez, adatelemzéshez, alkalmazásfejlesztéshez, és e cikk fókuszában, az alkalmazásprogramozási felületen (API-k).
Az alkalmazások felhasználói felületei bizonyos információk vagy funkciók interneten keresztüli elérésére szolgálnak. Például írhat egy Python programot, amely a Twitter API-t használja egy olyan funkció végrehajtására, amely képes tweeteket gyűjteni egy adott hashtaghoz. Az API megkönnyíti a fejlesztők számára, hogy bizonyos technológiákat bizonyos előre meghatározott műveleteket használó alkalmazások készítéséhez használjanak. Segít a különböző pontok összekapcsolásában.
Szerencsére rengeteg Python-keretrendszer létezik, de nem mindegyiket API-khoz szánják. Nézzünk meg néhány népszerű API-t, amelyek segítségével API-kat fejleszthet.
Tartalomjegyzék
Django REST
Django REST egy Python-alapú REST keretrendszer, amelyet a fejlesztők gyakran használnak webes API-k létrehozásához. A Rest a reprezentációs állapotátvitelt jelenti, amelyet az adatkommunikáció web-alapú architektúrájához használnak. HTTP-t használ a gépek közötti hívásokhoz. A GET, PUT, POST és DELETE néhány szabványos módszer, amelyet a Django rest keretrendszerben használnak.
A Django rest framework csak egy módja annak, hogy a REST API-t kiépítsük a Django segítségével, tehát ez csak egy eszközkészlet, amellyel dolgozhatunk. Rengeteg extra funkciót ad nekünk. A pip használatával egyetlen paranccsal telepítheti a Django REST keretrendszert a rendszerére. De a Django REST telepítése előtt Python 3.5+ verziónak és egy Djangonak kell lennie a rendszeren.
A Django REST jellemzői:
- Webes böngészhető API-k, és hatalmas használhatóságot biztosítanak a fejlesztők számára
- Több beépített hitelesítési szabályzat
- Sorozatosítás, amely támogatja mind az ORM, mind a nem ORM adatforrásokat
- Kiterjedt és jó dokumentáció az utaláshoz és a tanuláshoz
- Nagyon aktív közösségi támogatás
- Olyan szervezetek bíznak meg benne, mint a Red Hat, a Mozilla, a Heroku
- Támogatja az automatikus URL-útválasztást a Django felé
- Támogatja a tesztelést, gyorsítótárazást, szabályozást stb.
Lombik Nyugodt
Lombik Nyugodt a Flask keretrendszer kiterjesztése, amelyet a fejlesztők használnak a többi API-k gyors felépítéséhez. Mikro webszolgáltatásokról ismert, mert nagyon könnyű modulja van. Gyors, és csak néhány kódsorra van szükség a Flask inicializálásához és az API létrehozásához.
Egyszerű beállítani, és az API-k létrehozásának bevált gyakorlatait bátorítja. Az elmúlt néhány évben számos funkcióval bővült a Flask, és mára olyan jó, mint egy full-stack keretrendszer. Ez a webfejlesztők által előnyben részesített választás webalkalmazások és API-k készítéséhez.
A Flask Restful jellemzői:
- Nagyon könnyű és egyszerűen telepíthető
- Erőforrásokat biztosít, ami a lombik pihenésének építőköve. Több HTTP-módszer elérésére szolgál.
- Tartalmazza a mezőmodult és a marshal_with() dekorátort az adatok formázásához
- Lehetővé teszi annak szabályozását, hogy a renderelés után mely out mezők jelenjenek meg a válaszban
- Lehetővé teszi egyéni mezők és bevitelek hozzáadását az adattípus alapján
- Reprezentáció() dekorátort biztosít más ábrázolások támogatásához, például XML, CSV, HTML
Sólyom
Sólyom a webes keretrendszer, amelyet megbízható és nagy teljesítményű, nagyméretű alkalmazás-háttérrendszerek és mikroszolgáltatások készítésére használnak. A Falcon API-erőforrásait objektum-orientált és osztály-alapú felület segítségével határozza meg. Több szerverrel és platformmal kompatibilis, mivel WSGI-kompatibilis.
A Falcon magában foglalja a HTTP és REST architektúra stílusát, amelyet tiszta tervek létrehozására használnak. A Falcon mottója, hogy a lehető legkevesebbet tegyük, de még mindig legyünk nagyon hatékonyak. Ez a REST keretrendszer a minőségellenőrzésre összpontosít.
A Falcon jellemzői:
- Beépített szerverrel és hibakeresővel érkezik a fejlesztéshez
- Könnyű, minimális beállítással
- Főleg a gyorsabb teljesítmény érdekében használják
- Az URI-k forrásokhoz való hozzárendelése a REST ihlette
- Támogatja az útválasztást, a HTTP-protokoll kezelésére szolgáló médiakezelést, a cookie-kat és az URI segédprogramokat
- Könnyen integrálható a NoSQL-lel
- Támogatja az integrált egységteszteket
- Támogatást nyújt a biztonságos cookie-khoz
- Támogatja a Python 2.7, 3.5+ és kompatibilis a Pypy-vel
Kapcsolat
Kapcsolat automatikusan kezeli a HTTP kéréseket, és az OpenAPI specifikáción alapul. Az OpenAPI specifikáció YAML formátumban van leírva. Más eszközökkel ellentétben, ahol a Python-kód alapján generált specifikációt kap, a Connexion lehetővé teszi az OpenAPI specifikáció írását és a releváns Python-függvények végpontjainak leképezését. Miután részletesen leírta a REST API-t, a Connexion gondoskodik a működéséről.
Csatlakozási jellemzők:
- Az Ön által megadott specifikáció alapján érvényesíti a kéréseket és a végpontokat.
- Kezeli a token alapú hitelesítést az OAuth 2 használatával
- Támogatja az API verziószámítást
- A Web Swagger Console UI-val érkezik, amely lehetővé teszi az API végpontjainak hívását is.
- Automatikusan sorba rendezi a hasznos terheket
FastAPI
Ahogy a név is sugallja, FastAPI az egyik leggyorsabb és nagy teljesítményű Python-keretrendszer API-k építésére. Ez egy teljes csomag egy teljes webes keretrendszerből. A FastAPI használatával 200-300%-kal gyorsabban fejleszthet kódot. A FastAPI népszerűsége jelentősen növekszik a Python közösségben, eddig több mint 200 közreműködővel és 28,6 ezer indulással.
A FastAPI az ASGI specifikáción alapul, és főként aszinkron webalkalmazások készítésére használják. Az alábbiakban bemutatunk néhány jellemzőt.
- Nyílt szabványokon alapuló – OpenAPI, JSON séma, automatikus klienskód generálás
- Swagger felhasználói felület az API-k böngészőből történő hívásához és teszteléséhez
- Interaktív API dokumentáció
- Csökkenti a kód fejlesztői hibái által generált hibák 40%-át
- Minimalizálja a kód ismétlődését
- Intuitív szerkesztő támogatás (VSCode/PyCharm) automatikus kiegészítéssel
- Integrált biztonsággal és hitelesítéssel érkezik
- Függőség befecskendező rendszer az összes függőség automatikus kezelésére
- Teljesen kompatibilis Starlette és Pydantic
- Korlátlan támogatás a bővítményekhez
- Támogatja az alkalmazások tesztelését PyTest segítségével
- Támogatja az SQL adatbázisokat, a NoSQL adatbázisokat, a GraphQL-t
Ölelés
Ölelés egy nagyon szép mikrokeret, amely lehetővé teszi API-k, CLI-k és helyi csomagok létrehozását. Lehetővé teszi az API egyszeri létrehozását, és az API használatát a kódjukban bárhol. Hug a Cythont használja a fordításhoz, és csak szükség esetén használja fel az erőforrásokat; ez segít Hugnak nagyon nagy teljesítményt nyújtani.
A Hug-ot a pip használatával egyetlen paranccsal telepítheti. Ez az egyik legtisztább módja a HTTP REST API-k Python 3-on való felépítésének. Az API-k létrehozásához a Hug elválasztotta a verziófüggőségeket és az interfészt az API üzleti logikától. Számos interfészt kínál az API-fejlesztés egyszerűsítésére a fejlesztők számára.
Ölelés jellemzői:
- Követi a bárhol egyszer írható használat filozófiáját
- Az API logikát több interfészen keresztül (CLI, HTTP vagy helyi függvény) teszi elérhetővé.
- Hug.test modult biztosít az API teljes Python-verme teszteléséhez
- Tiszta és könnyen érthető dokumentáció
Eve
Eve a Flask és a Cerberus tetejére épül. Ennek a python-keretrendszernek az a célja, hogy az API-fejlesztést egyszerűvé és gyorssá tegye. Könnyedén hoz létre RESTful webszolgáltatásokat, amelyek nagymértékben testreszabhatók. Ezt a keretet elsősorban közepes méretű projekteknél részesítik előnyben.
Az Eve jellemzői:
- Támogatja a CRUD műveletek teljes skáláját
- Támogatja a testreszabható végpontokat, a lapozást, a rendezést, a szűrést
- Speciális funkciókat biztosít, például hitelesítést, sebességkorlátozást, gyorsítótárazást
- Könnyen integrálható az SQL adatbázisokkal, a MongoDB-vel, az Elasticsearch-el és a Neo4js-szel.
- Az adatok hitelesítésének azonnali támogatása
- Támogatja a CORS-t, a Cross-Origin erőforrás-megosztást
- Számos esemény bizonyított a továbbfejlesztett naplózás érdekében
Karnis
Karnis egy REST keretrendszer a Pyramid számára, amely segítséget nyújt a REST-szerű webszolgáltatások felépítéséhez és dokumentálásához. A piramist úgy tervezték, hogy egy alkalmazással méretezhető legyen. Lehetőség szerint automatikusan követi a HTTP specifikációt.
A karnis jellemzői:
- Egy út a párkányon egyenlő egy szolgáltatással
- A tartalom érvényesítése után automatikusan 400-as hibát dob, ha az adatok érvénytelenek
- CORS (Cross-Origin Resource Sharing) támogatást ad szolgáltatásaihoz
- Használja a Piramis hozzáférés-vezérlési listáit (ACL) az engedélyezéshez
- 406-os értéket ad vissza Nem fogadható el érvénytelen médiatípus esetén, az összes támogatott tartalomtípust tartalmazó hibaüzenettel
- Támogatja az URL-előtagok megadását az összes útvonalhoz
- A Toxot, a Python parancssori vezérelt eszközét használja az automatizált teszteléshez
Következtetés
Ez volt az API-k létrehozásához használt népszerű Python-keretrendszerek listája. Remélem, érdekesnek találta ezt a listát az induláshoz. Ahhoz, hogy értékelje, amit ezek a Python-keretrendszerek kínálnak, meg kell próbálnia őket. Mire vársz még? Válassza ki a REST keretrendszerek bármelyikét, és kezdje el az API-k építését Pythonban.
Ezután fedezze fel a JavaScript-keretrendszereket API-k létrehozásához.