完全解説:DjangoフレームワークでREST APIを作成

Djangoは、Python言語で書かれたオープンソースのWebアプリケーションフレームワークとして、REST APIを構築するためのDjango REST Framework(DRF)を提供しています。本文では、Django REST Frameworkを使用して効率的にREST APIを作成する方法を皆さんに紹介します。

中村 拓也

中村 拓也

12 5月 2025

完全解説:DjangoフレームワークでREST APIを作成

Djangoは、Python言語で書かれたオープンソースのWebアプリケーションフレームワークとして、REST APIを構築するためのDjango REST Framework(DRF)を提供しています。本文では、Django REST Frameworkを使用して効率的にREST APIを作成する方法を皆さんに紹介します。

また、多用途のAPI管理ツールのApidogをDjangoフレームワークと併用して、APIのテストやデバッグをより効率的に実現するソリューションをも一緒に紹介していきたいと思います。

button

DjangoとREST APIについて

REST API作成の際にDjangoはよく使われるフレームワークになります。この記事では、まずは、DjangoフレームワークとREST APIの基本情報を皆さんに紹介します。

Djangoフレームワークとは

DjangoはPython言語で書かれたオープンソースのWebアプリケーションフレームワークです。以下のような特徴があります。

DjangoはYouTube、Instagram、Dropboxなどの大規模サイトでも利用されており、PythonによるWeb開発のためのデファクトスタンダードとして位置付けられています。初心者にも学習しやすい構造になっているため、Pythonを使ったWebアプリケーション開発の入門に適していると言えます。

Django

REST APIとは

REST(Representational State Transfer)は、Webサービスを設計・開発するためのアーキテクチャスタイルの1つです。REST APIとは、RESTの原則に従って設計されたWeb APIのことを指します。

REST APIの主な特徴は以下の通りです。

REST APIはこれらの特徴により、スケーラブルで拡張しやすいAPIを実現できます。Web APIの開発においてはほぼ標準的なアーキテクチャと言えます。

Django REST Framework(DRF)について

Django REST Framework(DRF)は、DjangoでREST APIを構築するための強力な Toolkit です。DRFを使うことで、Djangoで高品質なREST APIを素早く開発できるようになります。大規模なAPI開発においてはデファクトスタンダードとして位置付けられています。その主な特徴は以下の通りです。

APIの構築を支援する様々なクラスとツールが用意

Web APIのベストプラクティスを反映した設計

Djangoの既存の機能との親和性が高い

DjangoフレームワークでRESTful APIを作成する方法

それでは、DjangoフレームワークでRESTful APIを作成するには、どうしたらいいですか?次は、Django REST Frameworkを使って、RESTful APIを効率的に作成する操作手順を皆さんに紹介します。

REST APIのビルドを開始する前に、Pythonがパソコンにインストールされていることを確保する必要があります。それでは、次の操作手順を参照して、REST APIの作成を開始しましょう。

Step 1. DjangoとDjango REST Frameworkのインストール

まず、ターミナル、コマンドプロンプトなどのコマンドラインツールを利用して、Django、Django REST Frameworkをインストールします。

pip install django djangorestframework

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

次のコマンドを利用して、プロジェクトファイルの保存用のプロジェクトディレクトリを作成します。

mkdir projectname

そして、次のコマンドを利用して、Djangoプロジェクトを初期化します。

django-admin startproject projectname

Step 3. プロジェクトディレクトリに移動

次のコマンドを利用して、作成したプロジェクトのディレクトリに移動します。

cd projectname

Step 4. Djangoアプリの作成

Djangoアプリを作成してAPIを実装します。

python manage.py startapp appname

Step 5. モデルの定義

models.pyでAPIで扱うデータのモデルを定義します。例えば、以下のようにItemモデルを定義できます。

from django.db import models

class Item(models.Model):

  name = models.CharField(max_length=100)

  description = models.TextField()

このモデルは2つのフィールドを持っています。

Step 6. マイグレーションの実行

マイグレーションを実行してデータベースのテーブルを作成します。

python manage.py makemigrations
python manage.py migrate

Step 7. シリアライザの作成

serializers.pyでモデルのシリアライザを定義します。例えば、次のようにrest_frameworkとモデルからSerializerをインポートしてItemSerializerクラスを定義できます。これはModelSerializerを継承したSerializerです。

from rest_framework import serializers
from .models import Item 

class ItemSerializer(serializers.ModelSerializer):  
 class Meta:    
  model = Item    
  fields = '__all__'

ここでは、モデルはItemに指定し、fieldsに__all__を設定することで、モデルの全フィールドをシリアライズの対象としています。

このSerializerをViewで使うことで、ItemオブジェクトをJSONなどの形式でシリアライズしたり、リクエストデータをデシリアライズしてItemオブジェクトを作成したりできるようになります。

Step 8. ViewSetによるビューの作成

views.pyでViewSetを使ってAPIのビューを定義します。

from rest_framework import viewsets
from .models import Item
from .serializers import ItemSerializer

class ItemViewSet(viewsets.ModelViewSet):
  queryset = Item.objects.all()
  serializer_class = ItemSerializer 

Step 9. URLの設定

urls.pyでビューとURLのマッピングを設定します。

from rest_framework import routers
from .views import ItemViewSet

router = routers.DefaultRouter()
router.register(r'items', ItemViewSet)

urlpatterns = router.urls

そして、プロジェクトのurls.pyでこれらのURLを全て含めるようにします。

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

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

Step 10. 開発サーバの起動

開発サーバを起動してAPIにアクセスできるようにします。

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


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

APIのエンドポイントURLは、http://localhost:8000/api/items/のようなものになりますが、そのURLは自分の設定に従うものになります。そして、このエンドポイントのURLを利用して、ApidogなどのGUIのAPI管理ツールでより効率的にテストしたり、ドキュメント化したりすることができます。

対応するファイルを作成した後、プロジェクトのディレクトリは、次のように見えます:

Dajango RESTフレームワークのSerializers

Apidog:Djangoフレームワークに互換するAPI管理ツール

button

Django RESTフレームワークを使って、REST APIを作成すると、ApidogというDjangoフレームワークに完璧に互換なAPI管理ツールを使用することがおすすめです。Apidogを使うメリットは主に以下のような点があります。

Apidogを使うと、APIのリクエストを簡単に送信し、レスポンスを確認できます。開発段階ではDjangoの開発サーバーに対してテストを直感的で簡単に行えるので便利です。

ApidogでAPIのリクエストとレスポンスを保存しておくと、それを基にAPIドキュメント(API仕様書)を自動生成できます。

Apidogのチーム機能を利用すると、APIの定義やテスト結果をチーム内でシームレスに共有できます。

Apidogでテストのシナリオを作成して、作成したリクエストとAPIをテストステップに簡単に設定して自動テストを簡単に実現できます。

他にも、APIの認証、環境変数、前・後処理など、APIテストに必要な機能が揃っています。

DjangoだけではAPI開発に不便な点がありますが、Apidogと併用することで補完できるため、API開発効率が大きく向上します。

ApidogでDjangoフレームワークで作成したAPIを効率的に管理可能

それでは、Apidogという便利なGUIツールを使って、Djangoフレームワークで作成したAPIを簡単にテストしたり、管理したりする方法を皆さんに紹介します。

button

APIの単体テスト

Apidogを開き、リクエストを新規に作成すると、エンドポイントのURLを入力した上、必要なパラメータなどの情報を入力すると、簡単にリクエストを送信してレスポンスを取得できます。これにより、Djangoフレームワークで開発してきたAPIの疎通確認を簡単に行うことできます。

APIの単体テスト

また、Apidogにレスポンスの「自動検証」という機能も備えています。この機能は、返されたレスポンスが事前に定義したステータスコードとデータ構造に一致しているかどうかをを自動的に判定することもできるので、テスト面から言うと、非常に便利です。

APIテストの自動化

Apidogの自動テスト機能を使うことで、テストシナリオを簡単に作成できます。そして、テストシナリオで、保存したAPIとリクエストをテストステップとして追加することができます。そして、テストステップそれぞれの実行条件を個別にカスタマイズすることも可能です。最後に「実行」ボタンをクリックして、各APIを設定の条件に従って一つ一つ呼び出すことができます。

テストステップに条件を設定

まとめ

DjangoはPythonでのWebアプリケーション開発において、REST API構築でもデファクトスタンダードの位置づけにあるフレームワークです。Django REST Frameworkを使うことで、シンプルかつ直感的にREST APIを開発することができます。本記事では、Django REST Frameworkを使ったREST APIの開発手順を具体的に解説しました。モデルとシリアライザの定義から、ViewSetsによるビューの作成、URL設定等の一連の流れを理解することができました。

button

また、API開発を補完するツールとして、Apidogという使いやすいGUIツールがおすすめです。Apidogを使うことで、APIのテスト、ドキュメント作成、自動化などを効率的に行うことができ、Django単体では難しい開発プロセスをサポートしてくれます。

Explore more

n8n徹底解説:初心者でもできるローカル自動化

n8n徹底解説:初心者でもできるローカル自動化

n8nは柔軟で簡単な自動化ツール。Dockerで手軽にローカル実行でき、ITプロや初心者もAIワークフロー構築を楽しめます。

10 6月 2025

Pythonで簡単!APIデータ抽出と自動データパイプラインの作り方

Pythonで簡単!APIデータ抽出と自動データパイプラインの作り方

PythonでAPIからデータ抽出ができれば、堅牢なデータパイプライン構築が可能です。認証やエラー処理も押さえ、自動化されたプロセスを実現できます。

7 6月 2025

MindsDB: あらゆるITユーザーのための万能MCPサーバー

MindsDB: あらゆるITユーザーのための万能MCPサーバー

MindsDBは、200以上のデータソースへの接続を容易にし、AIアプリの構築やインサイトの探索をプロのように実現します。さらなるデータソースの接続や、APIdogでのAPIドキュメント化をお試しください。

26 5月 2025

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる