LoginSignup
7

More than 3 years have passed since last update.

【Django】Django REST Frameworkとは?まとめてみた

Posted at

はじめに

 先日Djangoに入門した初心者です。やっとDjangoが何か、何ができるのかを少しわかってきたつもりなのにさらにRESTとか出てきて、???って感じです。ということで、Django REST Frameworkとは何なのか、何ができるのか、Djangoと何が違うのか、をまとめていきます。

Django REST Framework(DRF)とは?

 DjangoはPythonでWebアプリケーションを作るためのフレームワークであり、Webアプリケーションに必要なコンポーネントやAPIを多数提供している。しかし、REST APIバックエンドを構築するには、足りない機能がある。そこで、REST APIバックエンドを構築することに特化したDjangoパッケージであるDRFが登場した。

REST APIってなんだ???ってことでまずRESTの定義を。

REpresentational State Transfer(REST)の略で、分散ハイパーメディアシステムのための設計原則の1つである。

REST APIとは、RESTを適用したWeb APIのことである。URLですべてのリソースを一意に表し、サーバーセッションなどの状態を持たない(ステートレス)。HTTPメソッドでリソースへの操作を体系的に表し、同じURLに対する呼び出しには同じ結果が返される。

DRFには、例えば以下の機能がデフォルトで含まれている。

  • 認証
  • パーミッション(アクセス制御)
  • フィルタリング(クエリ文字列での検索)
  • ページネーション(ページ表示に対応したJSONレスポンス)
  • スロットリング(利用回数制限)

DRFプロジェクトの構成

 DRFプロジェクトの構成は、通常のDjangoプロジェクトの構成とは異なる部分がある。

  • Model(データベースのテーブルに対応)
  • Serializer(JSONデータとモデルの紐付け)
  • View(APIに対応したレスポンス)
  • URLconf(URLパターンの管理)

ModelとURLconfについては、通常のDjangoの場合とほぼ同じと考えて良い。ViewはDRF用の前処理なども行う。Serializerは、データを保持するためのもの。

まとめ

DRFは、RESTに則ったWebアプリケーションをつくるためにDjangoを補ったパッケージであり、拡張された機能のためにプロジェクトの構成も一部異なっている。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7