API란 무엇인가
Coddy Django 여정의 JSON API 섹션에 포함된 레슨. 19개 중 1번째.
지금까지 작성한 뷰는 사람들이 읽을 페이지를 반환합니다. API(애플리케이션 프로그래밍 인터페이스)는 프로그램을 위한 데이터를 반환합니다. 휴대폰 앱, 스크립트 또는 페이지의 JavaScript가 URL을 요청하고 HTML 대신 데이터를 받습니다.
이 데이터는 보통 JSON입니다. 큰따옴표를 사용하고, Python의 True, False, None에 해당하는 true, false, null을 포함하는, Python 딕셔너리와 리스트처럼 보이는 텍스트입니다.
{"title": "Buy milk", "done": false, "due": null}Django는 JsonResponse를 사용해 딕셔너리를 JSON 응답으로 변환합니다.
from django.http import JsonResponse
def hello(request):
return JsonResponse({"message": "Hi", "ready": True})JSON을 작성하고 Content-Type 헤더를 application/json으로 설정합니다. 헤더는 응답과 함께 전송되는 정보 한 줄입니다. 이 헤더는 프로그램에 받은 데이터의 종류를 알려 줍니다.
챌린지
쉬움작업 추적기에 첫 번째 엔드포인트를 추가하세요. 페이지 대신 숫자를 반환하는 URL입니다.
tasks/views.py에서django.http의JsonResponse를 가져오고, 작업 수인total과 완료된 작업 수인done을 JSON으로 반환하는stats뷰를 추가하세요.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 플레이그라운드