Hvis du har brukt en digital enhet til å sende og motta informasjon, har du brukt en API. Utviklere lager APIer for å gjøre det mulig for brukere å samhandle med data fra applikasjonene deres.
Å lage et REST API er en praktisk måte å dele informasjon på. REST APIer har definert standarder som regulerer datadeling mellom enheter. For å forstå hvordan REST API-er fungerer, kan du bygge en fra bunnen av.
Du kan bruke Django REST-rammeverket til å bygge et REST API og bruke det til å vise data fra en database.
Bruke Django med en REST API
Du kan bruke en REST API for å hente strukturerte data over HTTP. Som mange språk og rammeverk lar Django deg bygge din egen API og konsumere andre.
Du bør også ha følgende forhåndsinstallert:
- Den nyeste versjonen av python.
- Den nyeste versjonen av pip.
- Pipenv (selv om du kan bruke venv i stedet hvis du vil.)
- Den siste versjonen av Django.
Når du har installert all viktig programvare, er du klar til å begynne.
1. Installer Django REST Framework
Django REST-rammeverk
er et kraftig verktøysett du kan bruke til å bygge og konfigurere web-APIer. Dens tilpassbare funksjoner gjør det til et populært valg å bygge REST APIer.Du kan installere Django REST-rammeverket med følgende kommando:
pipenv installere djangorestrammeverk
2. Lag en Django-app
Følgende instruksjoner vil forklare hvordan du oppretter en matapplikasjon for å samle navn og beskrivelser av populære kenyanske matvarer. API-en vil hente forespørsler fra en database for å gjøre det mulig for brukere å samhandle med disse dataene.
Django-apper er utstyrt med en SQLitedatabase, slik at du ikke trenger å installere en annen database.
For å lage en Django-app må du først opprette et prosjekt som heter mat med følgende kommando:
django-admin startprosjekt mat
Deretter oppretter du en Django-app kaltkenyansk mat:
django-admin startapp kenyansk mat
3. Registrer App Project Settings
Registrerkenyansk matapp i prosjektinnstillingene under INSTALLERT APPER array. Hvis du hopper over dette trinnet, vil ikke Django gjenkjenne appen. Registrer også Django REST-rammeverket i de samme innstillingene:
# Applikasjonsdefinisjon
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'kenyansk mat',
'rest_framework',
]
4. Registrer app-URL-er
Registrere kenyansk mat app-URL-er i prosjektet urls.py fil som illustrert nedenfor:
fra django.contrib import admin
fra django.urls import sti, inkludere
urlpatterns = [
sti('admin/', admin.site.urls),
sti('', inkluderer ('kenyanfood.urls')),
]
5. Opprett en visning for API
Lag en dummy-visning i appen views.py fil, slik at appen ikke kaster feil. Først importerer du Respons innvende og@apiview dekoratør fra Django REST-rammeverket.
Respons hjelper med å returnere steriliserte data JSON formater mens @apiview viser API.
fra django.snarveier import gjengi
fra rest_framework.response import Respons
fra rest_framework.decorators import api_view
# Lag dine synspunkter her.
@api_view(['FÅ'])
deffå mat(be om):
komme tilbake Respons()
6. Opprett en URL-bane for appen
Opprett en URL-bane for API-visningen du opprettet. Dette endepunktet viser kenyansk matdata.
fra django.urls import sti
fra. import visninger
fra django.conf import innstillinger
urlpatterns = [
sti('', views.getFood),
sti('post/', views.postFood),
]
7. Lag en modell for appen
Appens modellklasse kalles Mat. Det skal se slik ut:
fra django.db import modeller
# Lag modellene dine her.
klasseMat(modeller. Modell):
navn = modeller. CharField (max_length=200)
beskrivelse = modeller. CharField (max_length=500)
Registrer modellen i appen admin.py fil som vist nedenfor:
fra django.contrib import admin
fra .modeller import Mat
# Registrer modellene dine her.
admin.nettstedet.registrere(Mat)
8. Foreta migreringer
Neste, migrere appen for å lage tabeller i SQLite database. Du kan gjøre dette ved å bruke følgende kommando:
pythonfå til.pymakemigrasjonerkenyansk mat
Deretter bruker du disse migreringene ved å kjøre denne kommandoen:
pythonfå til.pymigrere
En vellykket migrering vil se slik ut:
Vellykkede migreringer betyr at databasen har opprettet tabeller for kenyansk matApp.
9. Legg til data i databasen
Bruke Django admin GUI for å legge inn data i databasen. Django admin har et flott grensesnitt for å visualisere og administrere applikasjonens data.
Alternativt kan du bruke python-skallet på kommandolinjen for å legge inn data manuelt i databasen. I denne veiledningen vil du bruke Django-administrasjonsgrensesnittet.
Bruk følgende kommando for å sette opp Django admin:
pythonfå til.pyskaper superbruker
Når du blir bedt om det, skriv inn din brukernavn, e-post og passord. Du kan deretter åpne admin-siden ved å bruke lenken nedenfor:
http://127.0.0.1:8000/admin/
Du vil se påloggingssiden:
Når du logger inn, vil du se Django-administrasjonsgrensesnittet med Grupper og Brukere modell. Disse er begge for autentisering; de Mat modellen er i avsnittet nedenfor.
Du kan legge til og slette Mat elementer fra databasen fra admin-siden. Legg til noen kenyanske delikatesser, som Ugali, Pilau og Chai, til databasen.
Nå som databasen har data, lag API
10. Serialiser modellen
Serializers konvertere komplekse Django-modeller til JSON objekter, noe som gjør data enkelt å lese på API. Serialisering gjør data mer lesbare på API.
Opprett en ny fil i appen som heter serializer.py
fra rest_framework import serializers
fra .modeller import Mat
klasseFoodSerializer(serialiserere. ModelSerializer):
klasseMeta:
modell=Mat
felt=('Navn','beskrivelse')
Du importerer serializers modul fra rest_framework pakke og lage en FoodSerializer klasse som arver fra ModelSerializer klasse.
Deretter spesifiser Mat modellen du vil serialisere og feltene du vil legge til API.
11. Oppdater visningen
Deretter oppdaterer du API-visningen med serializer og Mat modeller.
Først må du definere en FÅ metode for å hente all data fra databasen med Mat. Objects.all() funksjon. Serialiser deretter dataene og returnerte dem som et svar JSON format.
fra django.snarveier import gjengi
fra rest_framework.response import Respons
fra rest_framework.decorators import api_view
fra .modeller import Mat
fra .serializer import FoodSerializer
# Lag dine synspunkter her.
@api_view(['FÅ'])
deffå mat(be om):
mat = Food.objects.all()
serializer = FoodSerializer (mat, mange=ekte)
komme tilbake Svar (serializer.data)
Deretter navigerer du til serverens URL-kobling:
https://127.0.0.1:8000/
Du vil se API-en som viser data fra databasen:
Gratulerer, du har opprettet en REST API!
12. Legg til data med POST-metoden
Test om du kan bruke REST API for å legge til data til databasen.
Først må du definere en POST metode i visningen.
@api_view(['POST'])
defpostmat(be om):
serializer = FoodSerializer (data=request.data)
hvisserializer.er gyldig():
serializer.lagre()
komme tilbake Svar (serializer.data)
Deretter legger du til en bane i appen urls.py for å opprette et endepunkt for API POST funksjonalitet.
urlpatterns = [
sti('',views.getFood),
sti('post/',views.postFood),
]
Deretter går du til denne nettadressen:
https://127.0.0.1:8000/post
Du vil se POST endepunkt. Legg til data til databasen i JSON format i Innhold og klikk på POST knapp. Legg for eksempel til en ny matvare med denne strukturen:
{ "Navn":"Maziwa mala", "beskrivelse":"Sur melk" }
Du vil se dataene vist i rødt JSON format.
Nå, hvis du navigerer tilbake til FÅ endepunkt http://127.0.0.1:8000/, vil du se maten 'Maziwa mala,' og beskrivelsen er lagt til.
Du har nå en REST API som kan vise og legge til elementer i applikasjonen. Hva med å eksperimentere med andre CRUD metoder? Jobber med OPPDATER og SLETT metoder vil øke funksjonaliteten til REST API.
Hvordan lage et REST API med Django
Du kan nå lage en REST API ved å bruke Django. Lag først en app med en modell, serialiser dataene og lag en visningsfunksjon. Deretter inkluderer URL-endepunkter for å visualisere dataene i JSON-format.
Å bygge REST APIer med Django REST-rammeverket er en praktisk måte å dele data på og gi brukerne dine en god kundeopplevelse.