APIとは何か
CoddyのDjangoジャーニー「JSON API」セクションの一部。レッスン 1/19。
これまでに書いたビューは、人が読むためのページを返します。API(アプリケーション・プログラミング・インターフェース)は、プログラム向けのデータを返します。スマートフォンアプリ、スクリプト、またはページ上のJavaScriptがURLにリクエストを送り、HTMLではなくデータを受け取ります。
そのデータは通常JSONです。Pythonの辞書やリストのように見えるテキストで、二重引用符を使い、PythonのTrue、False、Noneに当たるところにtrue、false、nullを使います。
{"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に設定します。ヘッダーとは、応答と一緒に送信される情報の1行です。このヘッダーは、受け取ったデータの種類をプログラムに伝えます。
チャレンジ
簡単タスクトラッカーに最初のエンドポイントを追加しましょう。
- タスク数を表す
totalと、完了したタスク数を表すdoneを含むJSONを返すビューstats。 "api/stats/"というルート。名前はstats。
Runを押してから、/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プレイグラウンド