Menu
CoddyTech

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行です。このヘッダーは、受け取ったデータの種類をプログラムに伝えます。

challenge icon

チャレンジ

簡単

タスクトラッカーに最初のエンドポイントを追加しましょう。

  • タスク数を表す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プレイグラウンド