Bouw krachtige API's met Python. Laten we eens kijken hoe!
Python is tegenwoordig een van de meest veelzijdige programmeertalen. Het heeft zijn populariteit te danken aan de leesbaarheid, de minder complexe syntaxis en het gemak waarmee het te leren is. In de afgelopen decennia is Python in meerdere domeinen voor meerdere toepassingen gebruikt. Het wordt gebruikt voor automatisering, webontwikkeling, gegevensanalyse, applicatieontwikkeling en waar dit artikel zich op richt, Application Programming Interface (API's).
Gebruikersinterfaces voor toepassingen worden gebruikt om toegang te krijgen tot bepaalde informatie of functionaliteit via het internet. U kunt bijvoorbeeld een Python-programma schrijven om Twitter API te gebruiken voor het uitvoeren van een functionaliteit die tweets voor een bepaalde hashtag kan verzamelen. Een API maakt het voor ontwikkelaars gemakkelijker om bepaalde technologieën te gebruiken om toepassingen te bouwen met bepaalde vooraf gedefinieerde bewerkingen. Het helpt bij het verbinden van verschillende punten
Gelukkig zijn er veel Python raamwerkenmaar ze zijn niet allemaal bedoeld voor API's. Laten we eens kijken naar enkele populaire frameworks die u kunt gebruiken om API's te ontwikkelen
Django REST
Django REST is een op Python gebaseerd REST-framework dat veel door ontwikkelaars wordt gebruikt om web-API's te bouwen. Rest staat voor representational state transfer, wat gebruikt wordt voor webgebaseerde architectuur voor datacommunicatie. Het gebruikt HTTP om oproepen te doen tussen machines. GET, PUT, POST en DELETE zijn enkele standaardmethoden die gebruikt worden in het Django rest framework.
Django rest framework is gewoon een manier om REST API op te bouwen met Django, dus het is gewoon een toolkit waarmee we kunnen werken. Het geeft ons veel extra functionaliteit. Met pip kunt u het Django REST framework met één commando op uw systeem installeren. Maar voordat u Django REST kunt installeren, moet u Python versie 3.5 en Django op uw systeem hebben
Django REST functies
- Web doorbladerbare API's en heeft enorme bruikbaarheid voor ontwikkelaars
- Meerdere ingebouwde authenticatiebeleidsregels
- Serialisatie die zowel ORM als niet-ORM gegevensbronnen ondersteunt
- Uitgebreide en goede documentatie om te raadplegen en te leren
- Een zeer actieve ondersteuning van de gemeenschap
- Vertrouwd door organisaties als Red Hat, Mozilla, Heroku
- Ondersteunt automatische URL-routering naar Django
- Ondersteunt testen, caching, throttling, enz.
Flask Restful
Flask Restful is een uitbreiding van het Flask-framework dat door ontwikkelaars wordt gebruikt om snel rest-API's te bouwen. Het staat bekend om het maken van microwebservices omdat het een zeer lichtgewicht module heeft. Het is snel en vereist slechts een paar coderegels om Flask te initialiseren en te gebruiken om een API te maken
Het is eenvoudig op te zetten en moedigt best practices voor het bouwen van API's aan. In de afgelopen jaren zijn er veel functies toegevoegd aan Flask, en nu is het net zo goed als een full-stack framework. Het heeft de voorkeur van webontwikkelaars voor het bouwen van webapplicaties en hun API's
Flask Restful functies
- Zeer lichtgewicht en eenvoudig te installeren
- Biedt bronnen die de bouwsteen is van Flask Restful. Het wordt gebruikt om toegang te krijgen tot meerdere HTTP-methoden.
- Wordt geleverd met veldenmodule en de decorator marshal_with() voor gegevensopmaak
- Stelt u in staat om te bepalen welke velden worden getoond in het antwoord na rendering
- Stelt u in staat om aangepaste velden en ingangen toe te voegen op basis van uw gegevenstype
- Biedt representatie() decorator om andere representaties te ondersteunen, zoals XML, CSV, HTML
Valk
Valk is het web framework dat gebruikt wordt om betrouwbare en hoogperformante grootschalige applicatie backends en microservices te bouwen. Falcon definieert zijn API-bronnen met behulp van een objectgeoriënteerde en op klassen gebaseerde interface. Het is compatibel met meerdere servers en platformen omdat het WSGI compliant is.
Falcon omarmt HTTP en REST architectuurstijl, die gebruikt wordt om strakke ontwerpen te creëren. Het motto van Falcon is om zo weinig mogelijk te doen, maar toch zeer effectief te zijn. Dit REST framework is gericht op kwaliteitscontrole
Valk functies
- Het wordt geleverd met een ingebouwde server en debugger voor de ontwikkeling
- Lichtgewicht met minimale setup
- Voornamelijk gebruikt voor snellere prestaties
- Mapping van URI's naar bronnen zijn REST geïnspireerd
- Ondersteunt routing, HTTP-protocol afhandeling media afhandeling, cookies en URI hulpprogramma's
- Integreert gemakkelijk met NoSQL
- Ondersteunt geïntegreerde eenheidstesten
- Biedt ondersteuning voor beveiligde cookies
- Ondersteunt Python 2.7, 3.5 en is compatibel met Pypy
Aansluiting
Aansluiting handelt HTTP-verzoeken automatisch af en is gebaseerd op de OpenAPI-specificatie. De OpenAPI-specificatie wordt beschreven in YAML-indeling. In tegenstelling tot andere tools waarbij u een gegenereerde specificatie krijgt op basis van de Python code, kunt u met Connexion een OpenAPI specificatie schrijven en de relevante eindpunten van Python functies in kaart brengen. Zodra u uw REST API in detail heeft beschreven, zorgt Connexion ervoor dat deze werkt
Verbindingsfuncties
- Valideert verzoeken en eindpunten op basis van de door u aangeleverde specificatie.
- Verwerkt op token gebaseerde verificatie met OAuth 2
- Ondersteunt API versiebeheer
- Wordt geleverd met Web Swagger Console UI, waarmee ook API's endpoints kunnen worden aangeroepen.
- Serialiseert automatisch de payloads
FastAPI
Zoals de naam al doet vermoeden, is FastAPI een van de snelste en best presterende Python frameworks voor het bouwen van API's. Het is een compleet pakket van een volledig webframework. Met FastAPI kunt u code 200 tot 300% sneller ontwikkelen. De populariteit van FastAPI groeit aanzienlijk in de Python gemeenschap, met 200 bijdragers en 28,6K starts tot nu toe.
FastAPI is gebaseerd op de ASGI-specificatie en wordt voornamelijk gebruikt voor het bouwen van asynchrone webapplicaties. Hieronder volgen enkele van de functies
- Gebaseerd op open standaarden - OpenAPI, JSON schema, automatische client code generatie
- Swagger gebruikersinterface om API's aan te roepen en te testen vanuit een browser
- Interactieve API-documentatie
- Vermindert 40% van de bugs die gegenereerd worden door fouten van ontwikkelaars in de code
- Minimaliseert duplicatie van code
- Intuïtieve editorondersteuning (VSCode/PyCharm) met autoaanvulling
- Wordt geleverd met geïntegreerde beveiliging en verificatie
- Afhankelijkheidsinjectiesysteem om alle afhankelijkheden automatisch af te handelen
- Volledig compatibel met Starlette en Pydantisch
- Onbeperkte ondersteuning voor plugins
- Ondersteunt het testen van toepassingen met PyTest
- Ondersteunt SQL-databases, NoSQL-databasesGraphQL
Knuffel
Knuffel is een heel mooi microframework waarmee u API's, CLI's en lokale pakketten kunt bouwen. Het stelt u in staat om de API één keer aan te maken en deze overal in uw code te gebruiken. Hug gebruikt Cython voor compilatie en verbruikt alleen bronnen wanneer dat nodig is; dit helpt Hug om zeer hoge prestaties te leveren
U kunt Hug met één commando installeren met pip. Het is een van de schoonste manieren om HTTP REST API's op te bouwen Python 3. Om API's te bouwen, scheidt Hug versieafhankelijkheden en interface van de API business logica. Het biedt meerdere interfaces om de API-ontwikkeling voor ontwikkelaars te vereenvoudigen
Knuffelfuncties
- Het volgt de filosofie van write-once overal gebruiken
- Stelt API logica bloot via meerdere interfaces (CLI, HTTP of een lokale functie)
- Biedt hug.test module om de volledige Python stack van uw API te testen
- Schone en gemakkelijk te begrijpen documentatie
Eve
Eve is gebouwd bovenop Flask en Cerberus. Het doel van dit python framework is om API-ontwikkeling eenvoudig en snel te maken. Het creëert moeiteloos RESTful webservices, die in hoge mate aanpasbaar zijn. Dit framework heeft de voorkeur voor middelgrote projecten
Eve-functies
- Ondersteunt volledige reeks CRUD-bewerkingen
- Ondersteunt aanpasbare eindpunten, paginering, sorteren, filteren
- Biedt geavanceerde functies zoals authenticatie, snelheidsbeperking, caching
- Integreert gemakkelijk met SQL databases, MongoDB, Elasticsearch en Neo4js.
- Out-of-the-box ondersteuning voor gegevensvalidatie
- Ondersteunt CORS, Cross-Origin Resource Sharing
- Bewezen verschillende gebeurtenissen voor verbeterde logging
Kroonlijst
Kroonlijst is een REST-raamwerk voor Pyramid, dat helpers biedt om REST-achtige webservices te bouwen en te documenteren. Pyramid is ontworpen om mee te schalen met een applicatie. Het volgt waar mogelijk automatisch de HTTP-specificatie
Kroonlijst functies
- Eén pad in Cornice is gelijk aan één service
- Werpt automatisch een 400-fout na validatie van de inhoud als de gegevens ongeldig zijn
- Voegt CORS (Cross-Origin Resource Sharing) ondersteuning toe aan uw services
- Gebruikt Pyramid's toegangscontrolelijsten (ACL's) voor autorisatie
- Retourneert 406 Niet Aanvaardbaar voor ongeldig mediatype met een foutmelding die alle ondersteunde inhoudstypen bevat
- Ondersteunt URL prefixing voor al uw routes
- Gebruikt Tox, een opdrachtregelgestuurd hulpprogramma in Python voor geautomatiseerde testen
Conclusie
Dat was mijn lijst van enkele populaire Python frameworks om API's te bouwen. Ik hoop dat u deze lijst interessant vond om mee aan de slag te gaan. Om te waarderen wat deze Python-frameworks te bieden hebben, moet u ze uitproberen. Dus, waar wacht u nog op? Kies één van deze REST frameworks en begin met het bouwen van API's in Python
Ontdek vervolgens JavaScript frameworks om API's te bouwen.
-
Avi is een enthousiast techneut met expertise in trending technologieën zoals DevOps, Cloud Computing, Big Data en nog veel meer. Hij heeft een passie voor het leren van geavanceerde technologieën en het delen van zijn kennis met anderen via... meer lezen