API là gì
Thuộc phần API JSON trong hành trình Django của Coddy. Bài học 1 trên 19.
Các view bạn đã viết đến giờ trả về những trang để mọi người đọc. API (giao diện lập trình ứng dụng) trả về dữ liệu cho các chương trình. Một ứng dụng điện thoại, một tập lệnh hoặc JavaScript trên trang sẽ yêu cầu một URL và nhận lại dữ liệu thay vì HTML.
Dữ liệu đó thường ở dạng JSON, văn bản trông giống từ điển và danh sách trong Python, dùng dấu ngoặc kép và true, false và null thay cho True, False và None trong Python:
{"title": "Buy milk", "done": false, "due": null}Django chuyển một từ điển thành phản hồi JSON bằng JsonResponse:
from django.http import JsonResponse
def hello(request):
return JsonResponse({"message": "Hi", "ready": True})Django ghi JSON và đặt tiêu đề Content-Type thành application/json. Tiêu đề (header) là một dòng thông tin được gửi kèm phản hồi; tiêu đề này cho chương trình biết loại dữ liệu mà nó nhận được.
Thử thách
DễThêm endpoint đầu tiên cho trình theo dõi công việc, một URL phản hồi bằng các con số thay vì một trang.
- Trong
tasks/views.py, nhậpJsonResponsetừdjango.httpvà thêm viewstatsphản hồi bằng JSON:total, số lượng công việc, vàdone, số lượng công việc đã hoàn thành. - Trong
tasks/urls.py, thêm tuyến đường"api/stats/"có tênstats.
Nhấn Chạy: bản xem trước mở /api/stats/ và hiển thị {"total": 3, "done": 1}.
Tự làm thử
from django.shortcuts import render
from .models import Task
def home(request):
return render(request, "tasks/home.html", {"tasks": Task.objects.all()})
Tất cả bài học trong API JSON
Tự luyện tập: Playground Django