Menu
CoddyTech

Was ist eine API?

Teil des Abschnitts JSON-APIs der Django-Journey von Coddy. Lektion 1 von 19.

Die bisher geschriebenen Views geben Seiten zurück, die Menschen lesen können. Eine API (Programmierschnittstelle) gibt Daten für Programme zurück. Eine Smartphone-App, ein Skript oder das JavaScript auf einer Seite fordert eine URL an und erhält Daten zurück, statt HTML.

Diese Daten sind normalerweise JSON, Text, der wie Python-Dictionaries und -Listen aussieht, mit doppelten Anführungszeichen und true, false und null an den Stellen, an denen Python True, False und None verwendet:

{"title": "Buy milk", "done": false, "due": null}

Django wandelt ein Dictionary mit JsonResponse in eine JSON-Antwort um:

from django.http import JsonResponse


def hello(request):
    return JsonResponse({"message": "Hi", "ready": True})

Es schreibt das JSON und setzt den Content-Type-Header auf application/json. Ein Header ist eine Informationszeile, die zusammen mit der Antwort gesendet wird; dieser teilt dem Programm mit, welche Art von Daten es erhalten hat.

challenge icon

Aufgabe

Einfach

Gib dem Aufgaben-Tracker seinen ersten Endpunkt: eine URL, die Zahlen statt einer Seite zurückgibt.

  1. Importiere in tasks/views.py JsonResponse aus django.http und füge eine Ansicht stats hinzu, die JSON zurückgibt: total, die Anzahl der Aufgaben, und done, die Anzahl der erledigten Aufgaben.
  2. Füge in tasks/urls.py die Route "api/stats/" mit dem Namen stats hinzu.

Klicke auf „Ausführen“: Die Vorschau öffnet /api/stats/ und zeigt {"total": 3, "done": 1}.

Probier es selbst

from django.shortcuts import render

from .models import Task


def home(request):
    return render(request, "tasks/home.html", {"tasks": Task.objects.all()})

Alle Lektionen in JSON-APIs

Übe selbstständig: Django-Playground