1. トップ
  2. Python
  3. 【入門編】Django REST frameworkとは?チュートリアルで解説

【入門編】Django REST frameworkとは?チュートリアルで解説

「Django REST framework」とは、PythonのWebアプリケーションフレームワークであるDjangoを使ってAPIを開発するために利用されるライブラリです。

この記事では、Django REST frameworkの入門編として、REST APIの説明から、具体的なフレームワークの使い方までをチュートリアル形式で解説します。

Django REST frameworkとは?わかりやすく解説

Django REST frameworkとは、Djangoを利用して「RESTful」なAPIを実装することができるライブラリのことです。DRFと略されることもあります。「RESTful」なAPIREST APIがどのようなものかについては後述します。

REST APIを実装すれば、複数のアプリケーション間におけるデータのやり取りが簡単に行えます。例えば、UI構築に使われるフレームワーク「Vue.js」に対して、Djangoからデータを渡すことができるようになります。複数のフレームワークと連携させることができるので、充実したWebアプリケーションを構築するのに役立ちます。

なお、Djangoとは、Pythonで実装されたWebアプリケーションフレームワークのことです。Webアプリ開発に必要な枠組みが準備されているため、開発を効率化できるなどのメリットがあります。Djangoに関する詳しい説明は、「Django(ジャンゴ)とは?Pythonのフレームワークを活用し、Web開発に役立てよう」をご覧ください。

Django REST frameworkとは

APIとは何か?

「API」とは、Application Programming Interfaceの略で、プログラムを外部と共有できるようにし、公開したもののことです。

具体的には、Google MapAPIなどが挙げられます。例えばGoogle MapAPIを使えば、作成したWebアプリケーション内に簡単に地図を表示させることができます。つまり、Google Mapの機能がAPIとして外部に提供されており、自由に利用して別のアプリケーションを作成できるということです。

また、AmazonAPIも非常に有名です。AmazonのAPIを利用すれば、最新の売れ筋商品や価格などの情報を別のアプリケーション内で簡単に表示することができます。そのほか、Twitter APIを利用すれば、最新トレンドなどを取得でき、Twitterとの連携も容易に行うことができます。

このように、APIを利用することで、外部の機能を別のシステムの中に取り込み、利用することが可能になります。そのため、さまざまな機能を充実させることができるだけではなく、システム構築が簡単になります。

APIとは何か

REST、RESTful APIとは何か?

「RESTful API」とは、Representational State Transfer APIの略で、「REST」という設計原則を満たしたWEB APIのことです。

RESTは、「セッション管理などを行わないため、サーバー側のシステムをシンプル化できる」「リソースすべてにURIが割り振られるため直感的に扱える」「JSONXML形式でデータを返すため軽い」「外部システムとの連携が容易」などのメリットがあります。

RESTは、2000年にロイ・フィールディング氏によって提唱された設計原則です。ロイ・フィールディングはHTTPプロトコル規格の著者の1人に数えられ、Webに関するエキスパートであり情報工学者としても知られています。

ロイ・フィールディング氏が提唱した原則は、以下の4つです。

  • セッション管理を行わない
  • HTTPメソッドでリソース(データ)を操作
  • 汎用的な構文
  • ハイパーメディアによる情報表現

それぞれの原則を詳しく解説していきます。

・セッション管理を行わない

RESTでは、セッション管理を行わないことが原則です。HTTPメッセージの一つひとつにすべての情報が含まれ、同じ処理を実行する場合もその都度、URIやメソッドの指定を行います。

・HTTPメソッドでリソース(データ)を操作

データとリソースは同じ意味です。リソースをやり取りする場合、RESTにおいてはすべてHTTPメソッドが使用されます。

・汎用的な構文

汎用的な構文であることもRESTの原則です。すべてのリソース(データ)URIが割り振られます。URIURLと同じ意味と理解して問題ありません。

・ハイパーメディアによる情報表現

RESTでは、HTMLもしくはXMLを使用することが原則です。これにより、リソースに対してリンクを持たせることができます。

 

Django REST frameworkの使い方チュートリアル

ここでは、Django REST frameworkを使用してAPIを作成する手順をチュートリアル形式で解説していきます。以下の説明は、Django経験者を想定しておりますので、Djangoを使用したことのない方は、まず「Django(ジャンゴ)とは?Pythonのフレームワークを活用し、Web開発に役立てよう」をご覧ください。

Django REST frameworkのインストール

まず、Django REST frameworkのインストール方法を解説します。

Django REST frameworkをインストールする前に、事前準備が必要です。必要なフレームワーク等が入っているか確認していきましょう。

インストールにはpipが必要です。下記のコマンドを入力し、pipがインストールされているか確認してください。

インストールされていない場合は、pipをインストールします。

次に、Djangoがインストールされているか確認します。

インストールされていない場合は、pipでインストール可能です。

次に、markdownをインストールします。

django-filterをインストールします。

ここまでで準備が整いました。pip Django REST frameworkをインストールします。

これでインストールは完了です。

続いて、Djangoプロジェクトを作成します。下記のようにプロジェクトを作成してくさい。今回は、udemytutorialをプロジェクト名にさせていただきました。もちろん、プロジェクト名は任意の名前で構いません。

プロジェクトに移動します。

プロジェクトに移動したら、アプリケーション「udemystart」を作成します。

フォルダー構成を確認してください。

settings.pyを開きます。

INSTALLED_APPSの中にrest_frameworkを追加してください。

Serializerを定義する

ここでは、Serializerの定義について解説します。

まずはプロジェクトまで移動します。

次にurls.pyを編集し、Serializersを定義します。

これで、Serializersの定義は終了です。

RESTful APIの作成

いよいよ、RESTful APIを作成します。

まずは、Serializersと同じように、urls.pyを開きます。

次に、ビューの振る舞いを決められるViewSetsを定義します。

ルーターの設定を行います。

URLのパスを設定します。

これで、APIの作成は完了です。

続いて、実際にWebサイトへアクセスしてみましょう。下記のコマンドを入力します。

画像のようにサーバーが立ち上がります。

サーバーの立ち上げ画面

次に、ブラウザで下記のURLにアクセスしてください。

http://localhost:8000/

画像のように表示されていれば成功です。

また、下記のURLにアクセスするとユーザー名とメールアドレスを登録できます。

http://localhost:8000/users/

実際に入力した画像は、以下の通りです。POSTボタンをクリックすれば、ユーザー名とメールアドレスを登録することができます。

ユーザー名やアドレスの登録画面

この記事では、Django REST frameworkについての基礎知識とAPI作成までのチュートリアルをご紹介しました。Django REST frameworkは、バックエンド開発を担うエンジニアにとって必要不可欠の知識になります。Pythonの需要は今後も伸びることが予想されますので、この機会にぜひ習得することをおすすめします。

 

エンジニアに役立つ目的別講座

Pythonの基本~応用をマスター

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

現役シリコンバレーエンジニアが教えるPython入門講座。Python3の基本を取得できます。

Webサイトのコーディングができるように

ウェブ開発入門完全攻略コース - プログラミング をはじめて学び創れる人へ!未経験から現場で使える開発スキルを習得!
ウェブ開発入門完全攻略コース - プログラミング をはじめて学び創れる人へ!未経験から現場で使える開発スキルを習得!

HTML, CSS, Bootstrap, JavaScript, MySQL, Ruby, Ruby on Rails, AWS Cloud9, Git, GitHubを用いたWebアプリケーション開発の方法を総合的に学べます。

AWSを基礎から学ぶ

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)
これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)

AWSの基本資格「AWS 認定ソリューションアーキテクト – アソシエイト試験」を合格を目指し、そのための知識や経験を獲得できるように!

ITプロジェクトの資料作成はお任せ!

手を動かして学ぶITプロジェクトの資料作成!システム開発のドキュメンテーション技術と成果物テンプレート
手を動かして学ぶITプロジェクトの資料作成!システム開発のドキュメンテーション技術と成果物テンプレート

ITプロジェクトの資料作成を学べる人気講座。フェーズ毎に、どんな資料を作ればいいのか悩んでいる人におすすめ。