見出し画像

Django REST Framework 入門ガイド 2 - セットアップ



2-1. 必要なライブラリのインストール

Django REST Frameworkを使用するには、Djangoプロジェクトに必要なパッケージをインストールする必要があります。以下のコマンドを実行してください。

pip install djangorestframework

また、認証やフィルタリングを追加で行いたい場合、以下のライブラリもインストールしてください。

  • djangorestframework-simplejwt: JWT認証を使う場合

  • django-filter: フィルタリングを簡単に実装する場合

pip install djangorestframework-simplejwt django-filter

2-2. プロジェクトへDRFを追加する

2-2-1. Djangoプロジェクトの作成

まだプロジェクトを作成していない場合は、以下のコマンドで新しいプロジェクトを作成します。

django-admin startproject myproject
cd myproject

プロジェクト作成後のディレクトリ構成は以下のようになります。

myproject/
    manage.py
    myproject/
        __init__.py
        asgi.py
        settings.py
        urls.py
        wsgi.p

2-2-2. アプリケーションの作成

DRFを試すためのアプリケーションを作成します。

python manage.py startapp api

このコマンドを実行すると、以下のようなディレクトリ構成(api/)が作成されます。

myproject/
    manage.py
    myproject/
   (省略)
    api/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py

各ファイルの役割は以下の通りです。

  • models.py: アプリケーション内のデータモデルを定義。

  • views.py: リクエストを処理するビューを定義。

  • tests.py: テストコードを記述。

  • admin.py: 管理画面の設定。

  • apps.py: アプリケーションの設定。

2-2-3. アプリケーションを設定に追加

プロジェクトのsettings.pyを開き、INSTALLED_APPSに以下を追加します。

INSTALLED_APPS = [
    # 既存のアプリ
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # REST Framework
    'rest_framework',

    # 作成したアプリ
    'api',
]

2-3. 設定ファイル(settings.py)の基本的な設定

2-3-1. DRFの基本設定

settings.py に以下のようなREST Frameworkの設定を追加します。

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': [
        'rest_framework.renderers.JSONRenderer',
        # 必要に応じてブラウザでの表示を有効化
        'rest_framework.renderers.BrowsableAPIRenderer',
    ],
    'DEFAULT_PARSER_CLASSES': [
        'rest_framework.parsers.JSONParser',
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ],
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
    ],
}
  • DEFAULT_RENDERER_CLASSES: APIの出力フォーマットを指定します。通常はJSONがメインですが、開発時に便利なブラウザビューも追加できます。

  • DEFAULT_AUTHENTICATION_CLASSES: セッションやトークンなど、認証の種類を指定します。

  • DEFAULT_PERMISSION_CLASSES: 権限のデフォルト設定。今回は認証が必要な設定をデフォルトにしています。

2-3-2. データベースのマイグレーション

必要に応じてデータベースのマイグレーションを行います。

python manage.py migrate

2-4. サンプルAPIの動作確認

2-4-1. シンプルなビューの作成

api/views.pyに以下のコードを追加します。

from rest_framework.response import Response
from rest_framework.views import APIView

class HelloWorldView(APIView):
    def get(self, request):
        return Response({"message": "Hello, world!"})

2-4-2. URLの設定

api/urls.pyを作成し、以下を記述します。

from django.urls import path
from .views import HelloWorldView

urlpatterns = [
    path('hello/', HelloWorldView.as_view(), name='hello'),
]

プロジェクト全体のurls.pyに、api.urlsをインクルードします。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('api.urls')),
]

2-4-3. サーバーの起動と確認

開発サーバーを起動してAPIが動作するか確認します。

python manage.py runserver

ブラウザまたはAPIクライアント(Postmanなど)で以下にアクセスしてください。

http://127.0.0.1:8000/api/hello/

これでDjango REST Frameworkのセットアップが完了しました。
次章では、API開発の中心となるシリアライザーについて解説していきます。

いいなと思ったら応援しよう!