Kui olete teabe saatmiseks ja vastuvõtmiseks kasutanud digitaalset seadet, olete kasutanud API-d. Arendajad loovad API-sid, mis võimaldavad kasutajatel oma rakenduste andmetega suhelda.

REST API loomine on mugav viis teabe jagamiseks. REST API-del on määratletud standardid, mis reguleerivad andmete jagamist seadmete vahel. Et mõista, kuidas REST API-d töötavad, saate luua selle nullist.

Saate kasutada Django REST raamistikku REST API loomiseks ja kasutada seda andmebaasi andmete kuvamiseks.

Django kasutamine REST API-ga

Sa saad kasutage struktureeritud andmete toomiseks REST API-t HTTP kaudu. Nagu paljud keeled ja raamistikud, võimaldab Django teil luua oma API ja tarbida teisi.

Samuti peaks teil olema eelinstallitud järgmine:

  1. Pythoni uusim versioon.
  2. Pip uusim versioon.
  3. Pipenv (kuigi võite selle asemel kasutada venv, kui soovite.)
  4. Django uusim versioon.

Kui olete kogu olulise tarkvara installinud, olete alustamiseks valmis.

1. Installige Django REST Framework

Django REST raamistik on võimas tööriistakomplekt, mida saate kasutada veebi API-de loomiseks ja konfigureerimiseks. Selle kohandatavad funktsioonid muudavad selle populaarseks valikuks REST API-de ehitamiseks.

Saate installida Django REST raamistiku järgmise käsuga:

pipenv installida djangorest raamistik

2. Looge Django rakendus

Järgmised juhised selgitavad, kuidas luua toidurakendust populaarsete Keenia toitude nimede ja kirjelduste kogumiseks. API tõmbab päringuid andmebaasist, et võimaldada kasutajatel nende andmetega suhelda.

Django rakendused on varustatud SQLite andmebaasiga, nii et te ei pea installima teist andmebaasi.

Django rakenduse loomiseks looge esmalt projekt nimega toit järgmise käsuga:

django-admin stardiprojekti toit 

Järgmisena looge Django rakendus nimegaKenya toit:

django-admin startapp kenyanfood

3. Registreerige rakenduse projekti sätted

RegistreerigeKenya toitrakendus projekti seadetes all PAIGALDATUD RAKENDUSED massiivi. Kui jätate selle sammu vahele, ei tunne Django rakendust ära. Samuti registreerige Django REST raamistik samades seadetes:

# Rakenduse määratlus

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Kenya toit',
'rest_framework',
]

4. Registreerige rakenduse URL-id

Registreeri Kenya toit rakenduse URL-id projektis urls.py fail, nagu allpool näidatud:

alates django.contrib importida admin
alates django.urls importida tee, kaasa

urlmustrid = [
tee ('admin/', admin.site.urls),
tee ('', sisaldab('kenyanfood.urls')),
]

5. Looge API jaoks vaade

Looge rakenduses näivvaade views.py faili, nii et rakendus ei tekita vigu. Esiteks importige Vastus vastulause ja@apiview dekoraator Django REST raamistikust.

Vastus aitab tagastada steriliseeritud andmed JSON vorming, samal ajal kui @apiview kuvab API.

alates django.otseteed importida renderdama
alates rest_framework.response importida Vastus
alates rest_framework.decorators importida api_view

# Looge siin oma vaated.
@api_view(['SAADA'])
defhankige Toitu(taotlus):
tagasi Vastus ()

6. Looge rakendusele URL-i tee

Looge loodud API-vaatele URL-i tee. See lõpp-punkt kuvab Kenya toitandmeid.

alates django.urls importida tee
alates. importida vaated
alates django.conf importida seaded

urlmustrid = [
tee ('', views.getFood),
tee ('postitus/', views.postFood),
]

7. Looge rakendusele mudel

Rakenduse mudeliklassi nimetatakse Toit. See peaks välja nägema selline:

alates django.db importida mudelid

# Looge siin oma mudelid.
klassToit(mudelid. mudel):
nimi = mudelid. CharField (max_length=200)
kirjeldus = mudelid. CharField (max_length=500)

Registreerige mudel rakenduses admin.py fail nagu allpool näidatud:

alates django.contrib importida admin
alates .mudelid importida Toit

# Registreerige oma mudelid siin.
admin.sait.Registreeri(Toit)

8. Tee migratsioone

Järgmiseks rändama rakendus tabelite loomiseks SQLite andmebaasi. Seda saate teha järgmise käsuga:

püütonhallata.pyrändavadKenya toit

Järgmisena rakendage need migratsioonid, käivitades selle käsu:

püütonhallata.pyrändama

Edukas üleviimine näeb välja järgmine:

Edukad migratsioonid tähendavad, et andmebaas on loonud tabelid Kenya toitRakendus

9. Andmete lisamine andmebaasi

Kasuta Django administraator GUI andmete sisestamiseks andmebaasi. Django administraator sellel on suurepärane liides teie rakenduse andmete visualiseerimiseks ja haldamiseks.

Teise võimalusena saate andmete käsitsi andmebaasi sisestamiseks kasutada käsureal olevat pythoni kesta. Selles juhendis kasutate Django administraatoriliidest.

Kasutage Django admini seadistamiseks järgmist käsku:

püütonhallata.pyloo superkasutaja

Kui küsitakse, sisestage oma kasutajanimi, e-posti aadress ja parool. Seejärel saate alloleva lingi abil avada administraatori lehe:

http://127.0.0.1:8000/admin/

Näete sisselogimislehte:

Kui olete sisse loginud, näete Django haldusliidest Rühmad ja Kasutajad mudel. Need mõlemad on autentimiseks; a Toit mudel on allolevas jaotises.

Saate lisada ja kustutada Toit üksused andmebaasist administraatori lehelt. Lisage andmebaasi mõned Keenia hõrgutised, nagu Ugali, Pilau ja Chai.

Nüüd, kui andmebaasis on andmed, looge API

10. Serialiseerige mudel

Serialisaatorid teisendada keerulised Django mudelid JSON objektid, muutes andmed API-s hõlpsasti loetavaks. Serialiseerimine muudab andmed API-s loetavamaks.

Looge rakenduses nimega uus fail serializer.py

alates rest_framework importida serialisaatorid
alates .mudelid importida Toit

klassFoodSerializer(serialisaatorid. ModelSerializer):
klassMeta:
model=Toit
väljad=('nimi','kirjeldus')

Sa impordid serialisaatorid moodulist rest_framework pakkida ja luua a FoodSerializer klass, mis pärib ModelSerializer klass.

Järgmisena täpsustage Toit mudel, mida soovite järjestada, ja väljad, mida soovite API-le lisada.

11. Värskendage vaadet

Järgmisena värskendage API vaadet serialiseerija ja Toit mudelid.

Esiteks määratlege a SAADA meetod kõigi andmete toomiseks andmebaasist Toit. Objects.all() funktsiooni. Seejärel järjesta andmed ja tagastas need vastusena JSON vormingus.

alates django.otseteed importida renderdama
alates rest_framework.response importida Vastus
alates rest_framework.decorators importida api_view
alates .mudelid importida Toit
alates .serialiseerija importida FoodSerializer

# Looge siin oma vaated.
@api_view(['SAADA'])
defhankige Toitu(taotlus):
toit = ​​Food.objects.all()
serializer = FoodSerializer (toit, palju =Tõsi)
tagasi Vastus (serializer.data)

Seejärel liikuge serveri URL-i lingile:

https://127.0.0.1:8000/

Näete, et API kuvab andmebaasi andmeid:

Õnnitleme, olete loonud REST API!

12. Andmete lisamine POST-meetodiga

Testige, kas saate andmebaasi andmete lisamiseks kasutada REST API-d.

Esiteks määratlege a POSTITA meetod vaates.

@api_view(['POSTITA'])
defpostToit(taotlus):
serializer = FoodSerializer (data=request.data)
kuiserialiseerija.on kehtiv():
serialiseerija.salvesta()
tagasi Vastus (serializer.data)

Seejärel lisage rakenduses tee urls.py API lõpp-punkti loomiseks POSTITA funktsionaalsust.

urlmustrid = [
tee ('',views.getFood),
tee ('postitus/',views.postFood),
]

Järgmisena navigeerige sellele URL-ile:

https://127.0.0.1:8000/post

Näete POSTITA lõpp-punkt. Lisage andmed andmebaasi JSON vormingus Sisu jaotist ja klõpsake nuppu POSTITA nuppu. Näiteks lisage uus toiduaine järgmise struktuuriga:

{ "nimi":"Maziwa mala", "kirjeldus":"Hapu piim" }

Näete andmeid punaselt JSON vormingus.

Nüüd, kui navigeerite tagasi lehele SAADA lõpp-punkt http://127.0.0.1:8000/, näete toitu "Maziwa mala,' ja selle kirjeldus lisatud.

Teil on nüüd REST API, mis saab kuvada ja lisada rakendusele üksusi. Kuidas oleks teistega katsetada CRUD meetodid? Tõõtan koos VÄRSKENDAMINE ja KUSTUTA meetodid suurendavad teie REST API funktsionaalsust.

Kuidas luua Djangoga REST API

Nüüd saate Django abil luua REST API. Esiteks looge mudeliga rakendus, järjestage andmed ja looge vaatefunktsioon. Järgmisena lisage andmete JSON-vormingus visualiseerimiseks URL-i lõpp-punktid.

REST API-de loomine Django REST raamistikuga on mugav viis andmete jagamiseks ja kasutajatele suurepärase kliendikogemuse pakkumiseks.