Django-rest-frameworkとは一体何ですか?

著者:HelloGitHub-ドリームフィギュア

まず、テンプレートエンジンに基づく従来のDjango開発ワークフローを確認しましょう。

  1. URLをバインドして関数を表示します。ユーザーがURLにアクセスすると、バインドされたビュー関数が呼び出されて処理されます。
  2. ビュー関数のロジックを記述します。通常、ビューにはデータベース操作が含まれます。
  3. ビューでHTMLテンプレートをレンダリングし、HTTP応答を返します。

実際、django-rest-frameworkに基づくRESTful APIの開発プロセスは完全に似ています。

  1. URLをバインドして関数を表示します。ユーザーがURLにアクセスすると、バインドされたビュー関数が呼び出されて処理されます。
  2. ビュー関数のロジックを記述し、HTTP要求タイプに従って、要求されたリソースに対して対応する操作を実行します。このプロセスには通常、データベースの操作が含まれます。
  3. 合意されたリソース記述形式(XMLやJSONなど)を使用してリソースをシリアル化し、データを(HTTP応答を介して)クライアントに返します。

比較により、最初の2つのステップはほとんど同じであることがわかります。違いは、従来のテンプレートエンジンベースの開発方法では、リソースはHTMLドキュメントを使用して記述され、クライアントに返されるのに対し、RESTful API開発方法では、リソースは通常、JSONまたはXML形式として記述され、クライアントに返されるという点です。 。

一部の学生は尋ねますが、djangoのビュー関数は通常HTMLドキュメントの応答を返しますが、djangoはXML形式またはJSON形式で応答を返すこともサポートしているので、なぜdjango-rest-frameworkを使用するのですか?

実際、djangoでJSONまたはXML形式でデータを返すことは確かに可能ですが、djangoフレームワーク自体は非常に基本的な機能しか提供しません。django-rest-frameworkは、djangoに基づく拡張であり、RESTful APIの開発用に特別に設計され、APIを便利に開発するのに役立つ非常に豊富な補助クラスと関数のセットを提供します。django-rest-frameworkが提供する機能的な機能を簡単に紹介し、次の実際の戦闘におけるそれらの使用法をさらに調査します。ここでは、まずマクロレベルから簡単に理解できます。

  • コンテンツ交渉。前述のように、RESFfulアーキテクチャシステムでは、リソースは特定の記述形式でクライアントとサーバーの間で受け渡され、django-rest-frameworkは、クライアントが受け入れることができるリソース形式に従って適切なリソース記述ツールを自動的に使用し、クライアントに戻ります許容できるリソース。
  • 認証と承認(認証と許可)。クライアントのリソースの操作は通常制限されており、一部のリソースは認証されたユーザーまたは対応する権限を持つユーザーのみが操作できます。Django-rest-frameworkは、私たちに役立つ豊富な認証および認証クラスを提供します身元と許可の検証。
  • シリアライゼーション(Serialization)。DjangoはPython言語に基づいて開発されているため、リソースは通常Pythonオブジェクトによって記述されるため、リソースをクライアントに渡すときは、PythonオブジェクトをJSON文字列に変換するなど、変換する必要があります。このプロセスはシリアル化と呼ばれます。djangoの組み込みシリアライザーの機能は制限されています。django-rest-frameworkは、より強力で強力なシリアライザーを提供し、リソースのシリアライズを非常に簡単にします。
  • さまざまな汎用ビュー(汎用ビュー)。Djangoは、コードの再利用性を向上させ、開発者の作業負荷を軽減するために、Web開発の共通処理ロジックにさまざまな共通ビュー関数を提供しています。django-rest-frameworkは、RESTful API開発における一般的な処理ロジックのためのさまざまな一般的なビュー関数も提供します。
  • 自動ルートジェネレーター(ルーター)。django-rest-frameworkは、記述されたビュー関数に従って、RESTful設計に準拠するURLルートを自動的に生成します。
  • ドキュメンテーション。django-rest-frameworkは、OpenAPIモデルに基づいてAPIドキュメントを自動的に生成します。手動による記述やメンテナンスは必要ありません。

さらに、django-rest-frameworkは、ページネーション、APIバージョン管理、キャッシング、スロットリングなどのさまざまな機能クラスも提供します。

次の実用的なチュートリアルでは、それらを1つずつ学習して使用します。

django-rest-frameworkの学習の旅を正式に始めましょう!


公開アカウントに従って交換グループに参加してください

おすすめ

転載: www.cnblogs.com/xueweihan/p/12706064.html