はじめに
Django REST Frameworkについて何回かに分けて説明していきます。
まずは、part1ということでDjango REST Framework(以降DRF)とは何か?
また、Rest APIとは何か?について説明します。
Django REST Framework(DRF)
DRFは、REST APIバックエンド構築に特化したフレームワークです。
DRFの強みは、バックエンド構築に必要な機能がほとんどそろっていることで、デフォルトで認証などの機能を実装することが出来ます。
また「Browsable API」というブラウザ上でAPIをたたくことが出来る機能も備わっています。
またDjangoと大きな構造上の違いはないので、Djangoを触ったことがある人なら、すぐにAPI開発ができます。
そもそも、なぜDjangoではなくDRFを使うのかというと、React、Next.jsなどのモダンなフロントエンドフレームワークを使用できるからです。また、このようにフロントエンド、バックエンドを分けることで、効率的な開発にもつながります。
何より、Pythonのライブラリを使えることがPythonでバックエンド開発を行う何よりの強みでしょう。
REST API
RESTという言葉を聞くことはよくあると思います。まさにREST APIとはRESTに沿って開発されたAPIのことです。
REST APIに似た用語で、RESTful APIがありますが、
REST APIはRESTに沿って開発されたAPI(完全には満たしていない部分もある)
それに対して、RESTful APIは完全にRESTの原則を満たしているAPIです
RESTとは
REST、RESTうるさいですが、
RESTとは、以下の原則を満たすアーキテクチャスタイルです。
-
クライアント・サーバ
クライアントとサーバが通信する -
ステートレス
クライアントのアプリケーション状態を管理しない -
キャッシュ
リソースの鮮度に基づいて、リソースをクライアント側で使いまわす -
統一インタフェース
URIで指示したリソースに対する操作を、統一した限定的なインタフェースで行う -
階層化システム
システムをいくつかの階層に分離する -
コードオンデマンド
プログラムコードをサーバからダウンロードし、クライアント側でそれを実行する
結局RESTとは、上の原則に沿った開発をしましょうねということです。
最後に
DRFとはREST APIをPythonで簡単に開発できる便利なフレームワークです。
次からは実際にDRFのコンポーネントを触りながら説明していきます。
参考文献
この記事は以下の情報を参考にして執筆しました。
- Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)
- 現場で使える Django REST Framework の教科書