Menu
CoddyTech

Что такое API

Часть раздела JSON API путешествия по Django на Coddy. Урок 1 из 19.

Написанные вами представления до сих пор возвращают страницы для чтения. API (программный интерфейс приложения) возвращает данные для программ. Приложение на телефоне, скрипт или JavaScript на странице запрашивает URL и получает данные, а не HTML.

Эти данные обычно представлены в формате JSON — это текст, похожий на словари и списки Python, с двойными кавычками и true, false и null вместо True, False и None в Python:

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

Django преобразует словарь в ответ JSON с помощью JsonResponse:

from django.http import JsonResponse


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

Он записывает JSON и задаёт заголовок Content-Type со значением application/json. Заголовок — это строка с информацией, отправляемая вместе с ответом; этот заголовок сообщает программе, какой тип данных она получила.

challenge icon

Задание

Легко

Добавь в трекер задач его первую конечную точку — URL, который возвращает числа вместо страницы.

  1. В tasks/views.py импортируй JsonResponse из django.http и добавь представление stats, которое возвращает JSON: total — количество задач, а done — количество выполненных задач.
  2. В tasks/urls.py добавь маршрут "api/stats/" с именем stats.

Нажми «Играть»: в предварительном просмотре откроется /api/stats/ и отобразится {"total": 3, "done": 1}.

Попробуйте сами

from django.shortcuts import render

from .models import Task


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

Все уроки раздела JSON API

Потренируйтесь самостоятельно: Песочница Django