Python er et stærkt programmeringssprog. Det har mange biblioteker til opbygning af REST- eller RESTful-API'er. Et af det populære bibliotek til opbygning af webapps og skrivning af REST API'er er Kolbe.
I denne artikel vil jeg vise dig, hvordan du opretter REST API i Python ved hjælp af Flask. Lad os komme igang.
Krav:
Du skulle have
- Python 2 eller Python 3 installeret på din computer.
- PIP eller PIP3 installeret på din computer.
- Den grundlæggende forståelse af Python-programmeringssprog.
- Den grundlæggende forståelse af udførelse af kommandoer i skallen.
Du skal være i stand til at finde artikler og tutorials om alle disse emner på LinuxHint.com
Jeg bruger Python 3 på Debian 9 Stretch i denne artikel. Hvis du bruger Python 2, bliver du nødt til at justere lidt. Du skal være i stand til selv at finde ud af det, da det vil være simpelt som at skrive python i stedet for python3 og pip i stedet for pip3.
Opsætning af virtuelt miljø:
For at sige det enkelt bruges virtuelt miljø til at isolere en Python-app fra en anden. Python-pakken, der bruges til at gøre det, er virtualenv.
Du kan nemt installere virtualenv ved hjælp af PIP på din computer med følgende kommando:
$ sudo -H pip3 installer virtualenvOpret nu et projektkatalog (lad os kalde det pyrest /) med følgende kommando:
$ mkdir pyrestOpret nu et virtuelt Python-miljø på pyrest / projektmappe med følgende kommando:
$ virtualenv pyrest /Naviger nu ind i projektmappen med følgende kommando:
$ cd pyrestAktiver derefter det virtuelle Python-miljø med følgende kommando:
$ kilde bin / aktivereEndelig kør følgende kommando for at installere Flask Python-biblioteket:
$ bin / pip3 installer kolbeSkrivning af dit første kolbe script:
I dette afsnit vil jeg skrive et hej verdensprogram i Python Flask.
Opret først en fil Hej.py i din projektmappe:
$ touch hej.pyTilføj nu følgende linjer til Hej.py fil og gem den.
I det næste afsnit vil jeg vise dig, hvordan du kører Flask-scripts.
Running Flask Script:
Nu for at starte Hej.py Flaskeserver, kør følgende kommando:
$ bin / python3 hej.pySom du kan se, er serveren startet http: // 127.0.0.1: 8080.
Nu kan du få adgang til Flask-serveren http: // 127.0.0.1: 8080 fra webbrowseren eller API-testsoftware såsom Postman. Jeg skal bruge CURL.
$ curl http: // 127.0.0.1: 8080Som du kan se, udskrives det korrekte output på skærmen.
tillykke! Kolben fungerer.
Adgang til data ved hjælp af GET i REST API:
GET-anmodning på REST API bruges til at hente oplysninger fra API-serveren. Du indstiller nogle API-slutpunkter og foretager en GET-anmodning om dette slutpunkt. Det er simpelt.
Opret først en ny fil få.py i din projektmappe med følgende kommando:
$ touch få.pyTilføj nu følgende linjer i din få.py fil og gem den.
Her på linje 1 viser Kolbe konstruktørfunktion og jsonify funktionen importeres fra flaskemodulet.
På linje 3, a Kolbe objekt oprettes og gemmes på app variabel.
På linje 5 oprettede jeg et Python-array med ordbøger med nogle dummy-data og lagrede det i konti variabel.
På linje 10 definerede jeg API-slutpunktet / konti og anmodningsmetoden, som er FÅ.
På linje 11 definerede jeg funktionen getAccounts (). getAccounts () funktion udføres, når en GET-anmodning til / konti slutpunkt er lavet.
Linie 12, som er en del af getAccounts () funktion, konverterede jeg konti vifte af ordbøger til JSON ved hjælp af jsonify () funktion og returnerede den.
På linje 14-15 ringede jeg til app.løb() at fortælle Flask at køre API-serveren på porten 8080.
Kør nu Flask API-serveren med følgende kommando:
$ bin / python3 få.pyServeren er startet på port 8080.
Lav nu en GET-anmodning til / konti slutpunkt med CURL som følger:
$ curl http: // 127.0.0.1: 8080 / kontiSom du kan se, vises kontodataene som JSON-format på GET-anmodning den / konti slutpunkt.
Du kan også få specifikke kontodata. For at gøre det skal jeg oprette et andet API-slutpunkt /konto/
Rediger få.py script og tilføj de markerede linjer til det.
Her, på linje 14, definerede jeg API-slutpunktet /konto/
På linje 15-17, funktionen getAccount () til API-slutpunktet /konto/
På linje 16, id variabel konverteres til et heltal. Jeg udledte også 1 fra id variabel. Fordi matrixindekset starter fra 0. Jeg vil starte konto-id'et fra 1. Så hvis jeg sætter 1 som konto
På linje 17, array ved indeks
Resten af koderne er de samme.
Kør nu API-serveren igen.
$ bin / python3 få.py
Jeg anmodede om data for konto 1 og 2 separat, og jeg fik den forventede output, som du kan se fra skærmbilledet nedenfor.
$ curl http: // 127.0.0.1: 8080 / konto / 1$ curl http: // 127.0.0.1: 8080 / konto / 2
Tilføjelse af data ved hjælp af POST i REST API:
Nu skal jeg omdøbe få.py til api.py og tilføj et API-slutpunkt /konto til tilføjelse af nye data.
Omdøb få.py til api.py:
$ mv -v få.py api.pyFørst skal du tilføje linjerne (19-26) som markeret i skærmbilledet nedenfor til api.py fil.
Kør nu api.py server:
$ bin / python3 api.py
For at indsætte nye data i /konto slutpunkt, kør følgende kommando:
$ curl -X POST -H "Content-Type: application / json" -d '"name": "Shovon", "balance": 100'http: // 127.0.0.1: 8080 / konto
BEMÆRK: Her, '"Navn": "Shovon", "balance": 100' er JSON-inputdata.
Dataene skal indsættes.
Som du kan se, tilføjes de nye data.
Så det er det for denne artikel. Tak, fordi du læste denne artikel.