1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Django REST framework(DRF)をこれから学習する方へ

Posted at

##目次

  • APIとWeb API
  • MVCとMTV
  • Model
  • Tamplate
  • View
  • まとめ

##APIとWeb API
###API
Application Programming Interfaceの頭文字を取った略称。
サービスの提供者がそのサービスを利用するために提供するインタフェースの事です。
開発者がAPIを利用すれば、同じ機能をもったサービスを開発する必要がないため
開発効率が向上し、開発費用を抑えることができる。

###Web API
API提供者とAPI利用者をHTTP/HTTPSベースでやりとりするAPI
APIは提供者と利用者のプログラミング言語が同じであることが多いが、
WebAPIは、異なるプログラミング言語でアプリケーションを連携させることが可能であり、
汎用性が高い。
Web APIではREST,SOAPという代表的な実装方式が存在します。

####REST
REST: Representational State Transferの略称。
RESTの考え方に沿ってできたWeb APIをRESTful API,又は、REST APIと呼びます。
1、以下のHTTPメソッドでデータ操作を表します。
GET:取得
POST:作成
PUT,Patch:更新
Delete:削除

2、ステートレス
前回のAPIの結果と2回目の結果で同じ値を返す。

3、URIで操作対象のリソースを判別可能にする
ユーザーというリソースを取得するため、usersというリソース名を付与したとする。
ユーザーIDで下記のようなURIフォーマットでURIを生成し、操作可能とする

URI: http://example.com/api/users/userId/
生成されたURI: http://example.com/api/users/1/

4、レスポンスとしてXML形式かJSON形式で操作結果を戻す
データ操作できた場合、XMLもしくはJSONでデータ操作結果を記述し、HTTPのレスポンスボディーに含め、データを返す。

####SOAP
SOAPはSimpleObject Access Protocolの略称。
リクエスト、レスポンスをXML形式でやり取りする。

##MVCとMTV
以下の表ような違いがあります。

MTV 説明 MVC
Model データ、ロジック Model
Template データの見せ方 View
View どのようなデータを見せるか View
URLディスパッチャ URLの振り分け、リクエスト制御 Controller

##Model
アプリケーションに必要なデータ、そのデータに付随する処理を記述する場所
Djangoでアプリケーションを作成する際には保存するデータとそのデータに関連する処理を全てModelにまとめる

##Template
Viewから渡ってきたデータを表示するhtmlファイルのこと

##View
Django REST frameworkにおけるViewにおける役割はユーザーからのリクエストを元に、どのAPIを提供するか決定する処理をしている

Viewには以下のようなクラスを継承することで簡単に開発することも可能。

  • FunctionView: Responseを返却する関数型View

  • ClassBasedView: Httpメソッドごとにインスタンスメソッドを定義できる

  • GenericView: クエリセットに紐づくため簡略化した書き方ができる

  • ViewSet
    取得、一覧、登録、更新、削除をまとめて管理するビュー
    簡潔に素早くAPIロジックを作成したい場合
    特別なカスタムロジックを実装しない場合

  • APIView
    複雑なAPIロジックを作成したい場合
    外部のAPIを呼び出す場合
    localのファイルを扱う場合

##最後に
これからDRFを学習する方へ向けての投稿でしたが、次回以降、コード例を載せてより詳しく説明しようと思います。
私がDRFを学習する際、RESTって何?、そもそもAPIとWebAPIの違いがわからないと言った事がありましたので、そういった方のお役に立てれば幸いです。

1
2
0

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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?