- Django REST frameworkとは?
- Web APIとは?
- Django REST frameworkを使うことで何がいいの?
本記事ではこのような疑問を解決します。
今回はDjango REST frameworkについて。
Django REST frameworkを学ぶにあたってはWeb APIやSPAについても知る必要があるでしょう。
もしかしてWeb APIやSPAなどの言葉を初めて聞きましたか?
でも安心してください。
本記事ではWeb APIやSPAも含めてわかりやすく解説していきます。
では早速Django REST frameworkについて学んでいきましょう。
Django REST frameworkとは?
Django REST framework(以下DRF)とはDjangoを利用して”API”を簡単に作るためのライブラリのことです。
※公式サイトはこちら
つまり、DRFを使うことで、Djangoの機能と組み合わせて効率的に”API”を作ることができます。
そして、ここで使われる”API”とはRESTful APIを指します。
ではRESTful APIとは一体何なのでしょうか?
次で確認していきましょう。
RESTful APIとは?
そもそもAPIとはApplication Programming Interfaceの略で、
プログラムなどを外部と共有できるように公開したものです。
ある機能やデータを公開することによって他のシステムにそれらを組み込むことができます。
また、一般的にAPIというと、Web APIのことを指します。
Web APIとはHTTP/HTTPSを介してやりとりするAPIのことです。
そして、RESTful APIもWeb APIの中の1つになります。
RESTful APIとはRepresentational State Transfer APIの略で、
「REST」という設計原則に基づいて実装されるWeb APIのことです。
「REST」とは具体的に以下のことを指します。
・データの操作(取得、作成、更新、削除)を全てHTTPメソッド(GET、POST、PUT、DELETE)で行う
・全てのデータはURIで表現される一意なアドレスを持っている
・セッション等の状態管理はせず、やりとりされる情報はそれ自体で完結する(ステートレスである)
・主にJSON形式でレスポンスを返す
これでDjango REST frameworkはRESTful APIを作るための強力なツールであるということが理解できたかと思います。
では、RESTful APIを含めたWeb APIはWebアプリケーション開発においてどのような力を発揮するのでしょうか?
次で詳しく見ていきましょう。
SPAについて
結論からいうと、Web APIはSPA開発で利用されます。
SPAとはSingle Page Applicationの略で、
単一ページ内で必要なコンテンツのみを切り替えて表示するアプリケーションのことです。
簡単にいうと、スマホアプリのようなUI・UXをブラウザで実現したもの、と言えます。
イマドキのWebアプリケーション開発ではSPAが主流となっています。
ではSPAにはどんなメリットがあるのでしょうか?
それを知るために以前のWebアプリケーションとSPAそれぞれの仕組みを比較したので下記をご覧ください。
○以前のWebアプリケーション
①ユーザーがアクション(クリックなど)を起こす
②サーバーと通信する(リクエスト)
③サーバーは生成したHTMLをクライアントに返す(レスポンス)
④ブラウザに生成されたHTMLが表示される
○SPA
①ユーザーがアクション(クリックなど)を起こす
②そのアクションに必要な部分のデータだけをサーバーに要求する
③サーバーはデータのみ(主にJSON)をクライアントに返す
④JavaScriptによってHTMLの一部が書き換えられる
上記のようにSPAではクライアントとサーバー間でのやりとりはデータのみ(主にJSON)であるため、
通信量を最低限に抑えてなめらかな動きをを実現できます。
そして、このデータのやりとりに利用されるのがRESTful APIをを筆頭とするWeb APIなのです。
Web APIによってクライアントとサーバーはデータだけをやりとりし、
単一ページにおいて必要なコンテンツのみを切り替えることができるのです。
Django REST frameworkを使うことで何がいいの?
ここまででDjango REST framework(以下DRF)についての理解は相当深まったと思います。
しかし、結局DRFを使うことでどんな良いことがあるのでしょうか?
それは先ほども述べましたが、
Djangoの機能と組み合わせて効率的にWeb APIを作ることができるという点です。
仮にWeb APIを1から作るとなるとテーブルの定義や検証機能など、多くの労力がかかります。
一方、Djangoでモデル定義などがされていれば、Djangoの機能を使って簡単にWeb APIを作ることができます。
まとめ
以上がDjango REST frameworkについてです。
Django REST frameworkはDjangoの機能を使ってWeb APIを作れてしまう強力なツールであることがわかりました。
もしDjangoを使ったことがある方であれば、
Djangoで扱っているデータをWeb API用に変換するために必要なコードがいかに少ないかに驚くことでしょう。
本記事でDjango REST frameworkに少しでも興味を持たれたならば、
こちらの記事で実際にDjango REST frameworkを体感してみてください。
Django REST frameworkの使い方とは?APIを爆速で作成するには? 本記事ではこのような疑問を解決します。SPA開発が主流となっているWeb開発では、Web APIの作成がマストと言って良いでしょう。さらに、Web[…]