Python is een krachtige programmeertaal. Het heeft veel bibliotheken voor het bouwen van REST of RESTful API's. Een van de populaire bibliotheken voor het bouwen van web-apps en het schrijven van REST API's is: Kolf.
In dit artikel laat ik je zien hoe je REST API in Python kunt maken met Flask. Laten we beginnen.
Vereisten:
Je had moeten
- Python 2 of Python 3 geïnstalleerd op uw computer.
- PIP of PIP3 geïnstalleerd op uw computer.
- Het basisbegrip van de programmeertaal Python.
- Het basisbegrip van het uitvoeren van opdrachten in de shell.
Je zou artikelen en tutorials over al deze onderwerpen moeten kunnen vinden op LinuxHint.com
Ik zal Python 3 gebruiken op Debian 9 Stretch in dit artikel. Als je Python 2 gebruikt, zul je een klein beetje moeten aanpassen. Je zou het zelf moeten kunnen bedenken, want het is zo simpel als schrijven Python in plaats van python3 en Pip in plaats van pip3.
Virtuele omgeving instellen:
Simpel gezegd, een virtuele omgeving wordt gebruikt om de ene Python-app van de andere te isoleren. Het Python-pakket dat hiervoor werd gebruikt, is: virtueel.
U kunt eenvoudig installeren virtueel met behulp van PIP op uw computer met de volgende opdracht:
$ sudo -H pip3 installeer virtualenvMaak nu een projectdirectory (laten we het noemen) brandstapel/) met het volgende commando:
$ mkdir pyrestMaak nu een virtuele Python-omgeving op de brandstapel/ projectmap met het volgende commando:
$ virtualenv pyrest/Navigeer nu naar de projectdirectory met het volgende commando:
$ cd-pyrestActiveer vervolgens de virtuele Python-omgeving met de volgende opdracht:
$ bron bin/activerenVoer ten slotte de volgende opdracht uit om de Flask Python-bibliotheek te installeren:
$ bin/pip3 installatiekolfJe eerste flesscript schrijven:
In deze sectie zal ik een hallo wereld-programma schrijven in Python Flask.
Maak eerst een bestand Hallo.py in uw projectmap:
$ raak hallo aan.pyVoeg nu de volgende regels toe aan: Hallo.py bestand en sla het op.
In het volgende gedeelte laat ik je zien hoe je Flask-scripts uitvoert.
Uitvoeren van Flask-script:
Nu om te beginnen met de Hallo.py Flask-server, voer de volgende opdracht uit:
$ bin/python3 hallo.pyZoals je kunt zien, is de server gestart op http://127.0.0.1:8080.
Nu hebt u toegang tot de Flask-server http://127.0.0.1:8080 vanuit de webbrowser of API-testsoftware zoals Postman. Ik ga CURL gebruiken.
$ krul http://127.0.0.1:8080Zoals u kunt zien, wordt de juiste uitvoer op het scherm afgedrukt.
Proficiat! Kolf werkt.
Toegang tot gegevens met behulp van GET in REST API:
GET-verzoek op REST API wordt gebruikt om informatie op te halen van de API-server. U stelt enkele API-eindpunten in en doet een GET-verzoek op dat eindpunt. Het is makkelijk.
Maak eerst een nieuw bestand krijgen.py in uw projectdirectory met het volgende commando:
$ raak get . aan.pyVoeg nu de volgende regels toe aan je krijgen.py bestand en sla het op.
Hier, op lijn 1, de Kolf constructorfunctie en jsonify functie wordt geïmporteerd uit de kolfmodule.
Op lijn 3, a Kolf object is gemaakt en opgeslagen op app variabele.
Op regel 5 heb ik een Python-array met woordenboeken gemaakt met enkele dummy-gegevens en deze opgeslagen in de rekeningen variabele.
Op regel 10 heb ik het API-eindpunt gedefinieerd /accounts en de aanvraagmethode, namelijk: KRIJGEN.
Op regel 11 heb ik de functie gedefinieerd getAccounts(). getAccounts() functie wordt uitgevoerd wanneer een GET-verzoek om /accounts eindpunt is gemaakt.
Lijn 12, die deel uitmaakt van getAccounts() functie, ik heb de . omgezet rekeningen reeks woordenboeken naar JSON met behulp van jsonify() functie en retourneerde het.
Op lijn 14-15 belde ik de app.rennen() om Flask te vertellen dat de API-server op poort moet draaien 8080.
Voer nu de Flask API-server uit met de volgende opdracht:
$ bin/python3 get.pyDe server is gestart op poort 8080.
Maak nu een GET-verzoek aan de /accounts eindpunt met CURL als volgt:
$ krul http://127.0.0.1:8080/rekeningenZoals u kunt zien, worden de accountgegevens weergegeven als JSON-indeling op GET-verzoek op /accounts eindpunt.
U kunt ook specifieke accountgegevens krijgen. Om dat te doen, ga ik een ander API-eindpunt maken /account/
Bewerk de krijgen.py script en voeg de gemarkeerde regels eraan toe.
Hier, op regel 14, heb ik het API-eindpunt gedefinieerd /account/
Op regel 15-17, de functie getAccount() voor het API-eindpunt /account/
Op lijn 16, de ID kaart variabele wordt geconverteerd naar een geheel getal. Ik heb er ook 1 afgeleid uit de ID kaart variabele. Omdat de array-index begint bij 0. Ik wil de account-ID starten vanaf 1. Dus als ik 1 als account invul
Op regel 17, de array op index
De rest van de codes zijn hetzelfde.
Voer nu de API-server opnieuw uit.
$ bin/python3 get.py
Ik heb gegevens voor account 1 en 2 afzonderlijk aangevraagd en ik kreeg de verwachte output zoals je kunt zien in de onderstaande schermafbeelding.
$ krul http://127.0.0.1:8080/rekening/1$ krul http://127.0.0.1:8080/rekening/2
Gegevens toevoegen met POST in REST API:
Nu ga ik hernoemen krijgen.py naar api.py en voeg een API-eindpunt toe /account voor het toevoegen van nieuwe gegevens.
Hernoemen krijgen.py naar api.py:
$ mv -v get.py api.pyVoeg eerst de regels (19-26) zoals aangegeven in de onderstaande schermafbeelding toe aan de api.py het dossier.
Voer nu de api.py server:
$ bin/python3 api.py
Nieuwe gegevens invoegen in de /account eindpunt, voer de volgende opdracht uit:
$ curl -X POST -H "Content-Type: application/json" -d '"name": "Shovon", "balance": 100'http://127.0.0.1:8080/rekening
OPMERKING: Hier, '“naam”: “Shovon”, “saldo”: 100' zijn de JSON-invoergegevens.
De gegevens moeten worden ingevoegd.
Zoals je kunt zien, zijn de nieuwe gegevens toegevoegd.
Dus dat was het voor dit artikel. Bedankt voor het lezen van dit artikel.