Om du har använt en digital enhet för att skicka och ta emot information har du använt ett API. Utvecklare skapar API: er för att göra det möjligt för användare att interagera med data från sina applikationer.
Att skapa ett REST API är ett bekvämt sätt att dela information. REST API: er har definierat standarder som reglerar datadelning mellan enheter. För att förstå hur REST API: er fungerar kan du bygga en från grunden.
Du kan använda Django REST-ramverket för att bygga ett REST API och använda det för att visa data från en databas.
Använda Django med ett REST API
Du kan använd ett REST API för att hämta strukturerad data över HTTP. Liksom många språk och ramverk låter Django dig bygga ditt eget API och konsumera andra.
Du bör även ha följande förinstallerat:
- Den senaste versionen av python.
- Den senaste versionen av pip.
- Pipenv (även om du kan använda venv istället om du vill.)
- Den senaste versionen av Django.
När du har installerat all nödvändig programvara är du redo att börja.
1. Installera Django REST Framework
Django REST ramverk är en kraftfull verktygslåda som du kan använda för att bygga och konfigurera webb-API: er. Dess anpassningsbara funktioner gör det till ett populärt val att bygga REST API: er.
Du kan installera Django REST-ramverket med följande kommando:
pipenv Installera djangorestframework
2. Skapa en Django-app
Följande instruktioner kommer att förklara hur man skapar en matapplikation för att samla in namn och beskrivningar av populära kenyanska livsmedel. API: et hämtar förfrågningar från en databas för att göra det möjligt för användare att interagera med dessa data.
Django-appar är utrustade med en SQLitedatabas, så du behöver inte installera en annan databas.
För att skapa en Django-app, skapa först ett projekt som heter mat med följande kommando:
django-admin startprojekt mat
Skapa sedan en Django-app som heterkenyansk mat:
django-admin startapp kenyanfood
3. Registrera App Project Settings
Registrerakenyansk matapp i projektinställningarna under INSTALLERADE APPAR array. Om du hoppar över det här steget kommer Django inte att känna igen appen. Registrera också Django REST-ramverket i samma inställningar:
# Applikationsdefinition
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. Registrera app-URL: er
Registrera kenyansk mat app-URL: er i projektet urls.py fil enligt bilden nedan:
från django.contrib importera administration
från django.urls importera väg, inkludera
urlpatterns = [
väg('administration/', admin.site.urls),
väg('', inkludera('kenyanfood.urls')),
]
5. Skapa en vy för API
Skapa en dummyvy i appens views.py fil, så att appen inte kastar fel. Importera först Svar invända och@apiview dekoratör från Django REST-ramverket.
Svar hjälper till att returnera steriliserade data JSON formatera medan @apiview visar API.
från django.shortcuts importera framställa
från rest_framework.response importera Svar
från rest_framework.decorators importera api_view
# Skapa dina åsikter här.
@api_view(['SKAFFA SIG'])
defhämta mat(begäran):
lämna tillbaka Svar()
6. Skapa en URL-sökväg för appen
Skapa en URL-sökväg för API-vyn du skapade. Denna slutpunkt visar kenyansk matdata.
från django.urls importera väg
från. importera vyer
från django.conf importera inställningar
urlpatterns = [
väg('', views.getFood),
väg('posta/', views.postFood),
]
7. Skapa en modell för appen
Appens modellklass kallas Mat. Det ska se ut så här:
från django.db importera modeller
# Skapa dina modeller här.
klassMat(modeller. Modell):
namn = modeller. CharField (max_length=200)
beskrivning = modeller. CharField (max_length=500)
Registrera modellen i appen admin.py fil enligt nedan:
från django.contrib importera administration
från .modeller importera Mat
# Registrera dina modeller här.
administration.webbplats.Registrera(Mat)
8. Gör migrationer
Nästa, flytta appen för att skapa tabeller i SQLite databas. Du kan göra detta med följande kommando:
pytonormhantera.pymakemigrationerkenyansk mat
Tillämpa sedan dessa migreringar genom att köra det här kommandot:
pytonormhantera.pyflytta
En framgångsrik migrering kommer att se ut så här:
Framgångsrika migreringar innebär att databasen har skapat tabeller för kenyansk matApp.
9. Lägg till data i databasen
Använd Django admin GUI för att mata in data i databasen. Django admin har ett utmärkt gränssnitt för att visualisera och hantera din applikations data.
Alternativt kan du använda pythonskalet på kommandoraden för att mata in data manuellt i databasen. I den här guiden kommer du att använda Djangos admingränssnitt.
Använd följande kommando för att ställa in Django admin:
pytonormhantera.pyskapar superanvändare
När du uppmanas anger du din användarnamn, e-postadress och lösenord. Du kan sedan öppna administratörssidan genom att använda länken nedan:
http://127.0.0.1:8000/admin/
Du kommer att se inloggningssidan:
När du har loggat in kommer du att se Djangos administrationsgränssnitt med Grupper och Användare modell. Dessa är båda för autentisering; de Mat modellen finns i avsnittet nedan.
Du kan lägga till och ta bort Mat objekt från databasen från adminsidan. Lägg till några kenyanska delikatesser, som Ugali, Pilau och Chai, till databasen.
Nu när databasen har data, skapa API
10. Serialisera modellen
Serialiserare konvertera komplexa Django-modeller till JSON objekt, vilket gör data lätt att läsa på API: et. Serialisering gör data mer läsbara på API: t.
Skapa en ny fil i appen som heter serializer.py
från rest_framework importera serialiserare
från .modeller importera Mat
klassFoodSerializer(serialiserare. ModelSerializer):
klassMeta:
modell=Mat
fält=('namn','beskrivning')
Du importerar serialiserare modul från rest_framework paketera och skapa en FoodSerializer klass som ärver från ModelSerializer klass.
Ange sedan Mat modell du vill serialisera och fälten du vill lägga till i API: t.
11. Uppdatera vyn
Uppdatera sedan API-vyn med serialiserare och Mat modeller.
Först, definiera a SKAFFA SIG metod för att hämta all data från databasen med Mat. Objects.all() fungera. Serialisera sedan data och returnerade den som ett svar JSON formatera.
från django.shortcuts importera framställa
från rest_framework.response importera Svar
från rest_framework.decorators importera api_view
från .modeller importera Mat
från .serializer importera FoodSerializer
# Skapa dina åsikter här.
@api_view(['SKAFFA SIG'])
defhämta mat(begäran):
mat = Food.objects.all()
serializer = FoodSerializer (mat, många=Sann)
lämna tillbaka Svar (serializer.data)
Navigera sedan till serverns URL-länk:
https://127.0.0.1:8000/
Du kommer att se API: et som visar data från databasen:
Grattis, du har skapat ett REST API!
12. Lägg till data med POST-metoden
Testa om du kan använda REST API för att lägga till data till databasen.
Först, definiera a POSTA metod i vyn.
@api_view(['POSTA'])
defpostFood(begäran):
serializer = FoodSerializer (data=request.data)
omserialiserare.är giltig():
serialiserare.spara()
lämna tillbaka Svar (serializer.data)
Lägg sedan till en sökväg i appen urls.py för att skapa en slutpunkt för API: t POSTA funktionalitet.
urlpatterns = [
väg('',views.getFood),
väg('posta/',views.postFood),
]
Navigera sedan till den här webbadressen:
https://127.0.0.1:8000/post
Du kommer att se POSTA slutpunkt. Lägg till data till databasen i JSON format i Innehåll och klicka på POSTA knapp. Lägg till exempel till en ny matvara med denna struktur:
{ "namn":"Maziwa mala", "beskrivning":"Surmjölk" }
Du kommer att se data visas i rött i JSON formatera.
Om du nu navigerar tillbaka till SKAFFA SIG slutpunkt http://127.0.0.1:8000/, du kommer att se maten 'Maziwa mala,' och dess beskrivning tillagd.
Du har nu ett REST API som kan visa och lägga till objekt i applikationen. Vad sägs om att experimentera med andra CRUD metoder? Arbetar med UPPDATERING och RADERA metoder kommer att öka funktionaliteten hos ditt REST API.
Hur man skapar ett REST API med Django
Du kan nu skapa ett REST API med Django. Skapa först en app med en modell, serialisera data och skapa en visningsfunktion. Inkludera sedan URL-slutpunkter för att visualisera data i JSON-format.
Att bygga REST-API: er med Django REST-ramverket är ett bekvämt sätt att dela data och ge dina användare en fantastisk kundupplevelse.