Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / 観点 / Django REST Frameworkとは?インストール、ディレクトリ構成などの基本を解説

Django REST Frameworkとは?インストール、ディレクトリ構成などの基本を解説

Django REST Framework (DRF) はDjango Webフレームワークのための強力なWeb APIフレームワークです。PythonでWeb APIを開発する際、Django REST Framework (DRF) は定番のフレームワークになると言っても過言ではありません。そこで、本文では、Django REST Framework (DRF) のインストール方法、ディレクトリ構成、主なコンポーネントなどの基本情報をわかりやすく解説していきたいと思います。

Django REST Framework (DRF) はDjango Webフレームワークのための強力なWeb APIフレームワークです。PythonでWeb APIを開発する際、Django REST Framework (DRF) は定番のフレームワークになると言っても過言ではありません。そこで、本文では、Django REST Framework (DRF) のインストール方法、ディレクトリ構成、主なコンポーネントなどの基本情報をわかりやすく解説していきたいと思います。

また、Apidogという直感的なAPI管理ツールを使って、面倒なコード記述なしに直感的な操作によってAPIを呼び出す方法を一緒に紹介します。

button

Django REST Framework (DRF) とは?

Django REST Framework (DRF) はDjango Webフレームワークのための強力なWeb APIフレームワークです。RESTful APIの構築を迅速にするための多くの機能を提供しています。主な機能は以下の通りです:

  • Web APIのための細かい制御が可能なViewクラス
  • リクエストのシリアライズとレスポンスのデシリアライズ
  • 認証ポリシーとパーミッションシステム
  • スロットリング等のレート制限
  • フィルタリング、オーダリング、ページネーション
  • 利用しやすいWebブラウザブルAPI
  • スキーマやドキュメント自動生成

DRFはDjangoのClass based viewsを拡張し、Web APIに特化した機能を提供します。RESTfulな設計を強制することで、APIの品質と一貫性を高めます。開発速度を上げるための多くのベストプラクティスも含まれています。DRFは柔軟性が高く、小規模なAPIから大規模なAPIまで対応できます。多くの人気WebサービスがDRFを利用していることからも、現代的なWeb API開発において非常に人気のあるフレームワークとなっています。

Django REST Frameworkのインストール方法

Django REST Frameworkの利用を開始する前に、まずそれをパソコンにインストールする必要があります。そこで、本文ではまずDjango REST Frameworkのインストール方法を紹介します。

Django REST Frameworkをインストールする前提として、Pythonがパソコンにインストールされる必要があります。Pythonをまだインストールしていない場合は、Pythonの公式サイトからまずPythonを取得してください。そして、次の手順を参照して、Django REST Frameworkをインストールしてください。

ステップ⒈次の pipコマンドを使って、Django REST Framework及び関連のパッケージをインストールできます。

pip install djangorestframework
pip install markdown       # browsable APIへのMarkdownサポート
pip install django-filter  # フィルタリングのサポート

また、Gitコマンドを利用してGithubから次のプロジェクトをクローンすることでインストールすることもできます。

git clone https://github.com/encode/django-rest-framework

ステップ⒉ 次のコマンドを利用して、'rest_framework'INSTALLED_APPS の設定に追加します。

INSTALLED_APPS = [
    ...
    'rest_framework',
]

ステップ⒊browsable APIを使用したい場合、REST frameworkのログインとログアウトのビューを追加する必要があります。次の内容をルートの urls.pyファイル中に追加します。

urlpatterns = [
    ...
    path('api-auth/', include('rest_framework.urls'))
]

ご案内:URLのPathを自由に設定することができます。

ここで、Django REST Frameworkをパソコンにインストールすることができました。Django REST Frameworkを使ってREST APIを作成するには、次の記事をご参照ください:

Django REST Frameworkのディレクトリ構成

Django REST Frameworkの典型的なディレクトリ構成は以下のようになります:

api/
    __init__.py
    admin.py
    apps.py
    models.py
    serializers.py 
    views.py
    tests.py

config/
    __init__.py
    settings.py
    urls.py
    wsgi.py

project/
    __init__.py

manage.py
  • api/: REST APIのコードはここに置かれる
  • api/serializers.py: リクエストとレスポンスのシリアライザー
  • api/views.py: APIビューとビジネスロジック
  • api/urls.py: APIエンドポイントのルーティング設定
  • config/: 設定ファイル群
  • config/settings.py: Django設定ファイル
  • config/urls.py: プロジェクト全体のURL設定
  • manage.py: Django管理スクリプト

appsとmodelsは使わない場合もあるため、必須ではありません。

この構成では、API関連のコードはapiアプリに隔離されており、他のDjangoアプリとは隔離されています。APIの拡張がしやすくなります。Django REST Frameworkはこの構成を推奨していますが、プロジェクトの要件に応じて自由に構成を変更可能です。

Django REST Frameworkの主なコンポーネント

Django REST Frameworkには、REST API開発を支援するための主要なコンポーネントがあります。主なコンポーネントは以下の通りです:

Serializer: リクエストとレスポンスのシリアライズを支援。モデルインスタンスやクエリセットをシリアライズし、レスポンスデータのフォーマットを定義できる。

Views: APIビューの基本クラス。大部分のロジックはここに書かれる。GenericAPIViewやViewSetなどの汎用ビューを提供。

Routers: 自動的にURLconfを生成するルーター。ViewSetsと組み合わせて使用。

Request: リクエストオブジェクトを拡張し、パーサークラスを追加する。

Response: レスポンスオブジェクトを拡張し、レンダラーを追加する。

Permissions: 認証ポリシーとパーミッション(権限)を定義できる。

Authentication: 各種認証スキーマ(Basic認証、Token認証など)を提供。

Throttling: リクエスト数のスロットリング(レート制限)を設定できる。

Filtering: クエリパラメータに基づく動的なオブジェクトフィルタリング。

これらのコンポーネントを組み合わせて使用することで、複雑なREST APIをも効率的に構築できます。

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

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

button

APIのテスト・デバッグがしやすい

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

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

APIの単体テスト

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

APIドキュメントの自動生成

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

ApidogのAPI仕様書のサンプル
button

コラボレーションも楽々

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

APIテストの自動化

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

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

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

多機能

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

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

button

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。