Pokud jste k odesílání a přijímání informací používali digitální zařízení, použili jste rozhraní API. Vývojáři vytvářejí rozhraní API, která uživatelům umožňují interakci s daty z jejich aplikací.

Vytvoření REST API je pohodlný způsob sdílení informací. REST API mají definované standardy regulující sdílení dat mezi zařízeními. Abyste pochopili, jak REST API fungují, můžete si je vytvořit úplně od začátku.

Rámec Django REST můžete použít k vytvoření rozhraní REST API a použít jej k zobrazení dat z databáze.

Používání Django s REST API

Můžeš použijte REST API k načtení strukturovaných dat přes HTTP. Stejně jako mnoho jazyků a frameworků vám Django umožňuje vytvořit si vlastní API a využívat další.

Dále byste měli mít předinstalované následující:

  1. Nejnovější verze pythonu.
  2. Nejnovější verze pip.
  3. Pipenv (ačkoli můžete místo toho použít venv, pokud chcete.)
  4. Nejnovější verze Django.

Jakmile nainstalujete veškerý základní software, můžete začít.

1. Nainstalujte Django REST Framework

Rámec Django REST

instagram viewer
je výkonná sada nástrojů, kterou můžete použít k vytváření a konfiguraci webových rozhraní API. Jeho přizpůsobitelné funkce z něj dělají oblíbenou volbu pro vytváření REST API.

Rámec Django REST můžete nainstalovat pomocí následujícího příkazu:

pipenv Nainstalujte djangorestframework

2. Vytvořte aplikaci Django

Následující pokyny vysvětlí, jak vytvořit potravinářskou aplikaci pro shromažďování názvů a popisů oblíbených keňských jídel. Rozhraní API bude načítat požadavky z databáze, aby uživatelům umožnilo interakci s těmito daty.

Aplikace Django jsou vybaveny databází SQLite, takže nemusíte instalovat další databázi.

Chcete-li vytvořit aplikaci Django, nejprve vytvořte projekt s názvem jídlo s následujícím příkazem:

django-admin startproject food 

Dále vytvořte aplikaci Django s názvemkeňské jídlo:

django-admin startapp kenyanfood

3. Zaregistrujte nastavení projektu aplikace

Zaregistrujte sekeňské jídloaplikaci v nastavení projektu pod NAINSTALOVANÉ APLIKACE pole. Pokud tento krok přeskočíte, Django aplikaci nerozpozná. Zaregistrujte také framework Django REST ve stejném nastavení:

# Definice aplikace

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.zprávy',
'django.contrib.staticfiles',
'keňské jídlo',
'zbytek_rámce',
]

4. Zaregistrujte adresy URL aplikací

Registrovat keňské jídlo adresy URL aplikace v projektu urls.py soubor, jak je znázorněno níže:

z django.contrib import admin
z django.urls import cestu, zahrnout

urlpatterns = [
cesta('admin/', admin.site.urls),
cesta('', zahrnout('kenyanfood.urls')),
]

5. Vytvořte zobrazení pro rozhraní API

Vytvořte fiktivní zobrazení v aplikaci views.py soubor, takže aplikace nevyhazuje chyby. Nejprve importujte Odezva objekt a@apiview dekoratér z frameworku Django REST.

Odezva pomáhá vrátit sterilizovaná data dovnitř JSON formát, zatímco @apiview zobrazí API.

z django.zkratky import poskytnout
z rest_framework.response import Odezva
z rest_framework.decorators import api_view

# Zde si vytvořte své názory.
@api_view(['DOSTAT'])
defdostat jídlo(žádost):
vrátit se Odezva()

6. Vytvořte cestu URL pro aplikaci

Vytvořte cestu URL pro zobrazení API, které jste vytvořili. Tento koncový bod zobrazuje keňské jídlodata.

z django.urls import cesta
z. import pohledy
z django.conf import nastavení

urlpatterns = [
cesta('', views.getFood),
cesta('pošta/', views.postFood),
]

7. Vytvořte model pro aplikaci

Třída modelu aplikace se nazývá Jídlo. Mělo by to vypadat takto:

z django.db import modely

# Zde si vytvořte své modely.
třídaJídlo(modely. Modelka):
jméno = modely. CharField (max_length=200)
popis = modely. CharField (max_length=500)

Zaregistrujte model v aplikaci admin.py soubor, jak je uvedeno níže:

z django.contrib import admin
z .modely import Jídlo

# Zaregistrujte své modely zde.
admin.místo.Registrovat(Jídlo)

8. Provádějte migrace

Další, migrovat aplikace pro vytváření tabulek v SQLite databáze. Můžete to provést pomocí následujícího příkazu:

krajtaspravovat.pymigracekeňské jídlo

Dále použijte tyto migrace spuštěním tohoto příkazu:

krajtaspravovat.pymigrovat

Úspěšná migrace bude vypadat takto:

Úspěšné migrace znamenají, že databáze vytvořila tabulky pro keňské jídloAplikace.

9. Přidejte data do databáze

Použijte admin Django GUI pro zadávání dat do databáze. admin Django má skvělé rozhraní pro vizualizaci a správu dat vaší aplikace.

Případně můžete použít python shell na příkazovém řádku k ručnímu zadávání dat do databáze. V této příručce budete používat administrátorské rozhraní Django.

K nastavení správce Django použijte následující příkaz:

krajtaspravovat.pyvytvářísuperuser

Po zobrazení výzvy zadejte svůj uživatelské jméno, e-mail a heslo. Poté můžete otevřít stránku správce pomocí odkazu níže:

http://127.0.0.1:8000/admin/

Zobrazí se vám přihlašovací stránka:

Jakmile se přihlásíte, uvidíte administrační rozhraní Django s Skupiny a Uživatelé Modelka. Oba jsou pro autentizaci; a Jídlo model je v sekci níže.

Můžete přidávat a mazat Jídlo položky z databáze ze stránky správce. Přidejte do databáze některé keňské lahůdky, jako je Ugali, Pilau a Chai.

Nyní, když má databáze data, vytvořte API

10. Serializujte model

Serializátory převést složité modely Django na JSON objekty, díky čemuž lze data snadno číst na rozhraní API. Díky serializaci jsou data na rozhraní API čitelnější.

Vytvořte nový soubor v aplikaci s názvem serializer.py

z zbytek_rámce import serializátory
z .modely import Jídlo

třídaFoodSerializer(serializátory. ModelSerializer):
třídaMeta:
model = jídlo
pole=('název','popis')

Importujete serializátory modul z zbytek_rámce zabalit a vytvořit a FoodSerializer třídy, která dědí z ModelSerializer třída.

Dále specifikujte Jídlo model, který chcete serializovat, a pole, která chcete přidat do API.

11. Aktualizujte zobrazení

Dále aktualizujte zobrazení API pomocí serializátor a Jídlo modely.

Nejprve definujte a DOSTAT metoda pro načtení všech dat z databáze pomocí Jídlo. Objects.all() funkce. Poté data serializujte a vraťte je jako odpověď JSON formát.

z django.zkratky import poskytnout
z rest_framework.response import Odezva
z rest_framework.decorators import api_view
z .modely import Jídlo
z .serializátor import FoodSerializer

# Zde si vytvořte své názory.
@api_view(['DOSTAT'])
defdostat jídlo(žádost):
jídlo = Food.objects.all()
serializátor = FoodSerializer (jídlo, mnoho=Skutečný)
vrátit se Odpověď (serializer.data)

Poté přejděte na odkaz URL serveru:

https://127.0.0.1:8000/

Uvidíte API zobrazující data z databáze:

Gratulujeme, vytvořili jste REST API!

12. Přidat data metodou POST

Vyzkoušejte, zda můžete pomocí REST API přidat data do databáze.

Nejprve definujte a POŠTA metoda v pohledu.

@api_view(['POŠTA'])
defpostFood(žádost):
serializátor = FoodSerializer (data=request.data)
-liserializátor.je platná():
serializátor.Uložit()
vrátit se Odpověď (serializer.data)

Poté do aplikace přidejte cestu urls.py vytvořit koncový bod pro API POŠTA funkčnost.

urlpatterns = [
cesta('',views.getFood),
cesta('pošta/',views.postFood),
]

Dále přejděte na tuto adresu URL:

https://127.0.0.1:8000/post

Uvidíte POŠTA koncový bod. Přidejte data do databáze v JSON formátu v Obsah a klikněte na POŠTA knoflík. Například přidejte novou potravinu s touto strukturou:

{ "název":"Maziwa měla", "popis":"Kyselé mléko" }

Údaje se zobrazí červeně JSON formát.

Nyní, pokud se vrátíte zpět do DOSTAT koncový bod http://127.0.0.1:8000/, uvidíš jídlo"Maziwa mala,“ a jeho popis přidán.

Nyní máte REST API, které může zobrazovat a přidávat položky do aplikace. Co takhle experimentovat s jinými CRUD metody? Práce s AKTUALIZACE a VYMAZAT metody zvýší funkčnost vašeho REST API.

Jak vytvořit REST API s Django

Nyní můžete vytvořit REST API pomocí Django. Nejprve vytvořte aplikaci s modelem, serializujte data a vytvořte funkci zobrazení. Dále zahrňte koncové body URL pro vizualizaci dat ve formátu JSON.

Vytváření REST API pomocí Django REST framework je pohodlný způsob, jak sdílet data a poskytnout vašim uživatelům skvělou zákaznickou zkušenost.