<aside> ℹ️ この資料はChatGPT3.5経由で作成されたものになります。
</aside>
目次
本記事は
という方のために、大まかなバックエンドの役割を整理しお伝えします。また実装に対して明確なビジョンを持って頂くため最終課題で使用するPythonフレームワーク・Djangoとの結びつきも適宜解説していきます。
Webアプリケーションにおいて、バックエンドはWebサイトやWebアプリケーションの動的な機能を実現するために必要な処理を行うサーバーサイドのコンポーネントです。バックエンドの主な役割は以下の5つに分けられます。
バックエンドは、データベースに格納されたデータを操作し、Webアプリケーションの動的な機能を実現するために必要な情報を提供します。例えば、ユーザーがログインする際に、バックエンドはユーザーの認証情報を確認し、認証が成功した場合にはデータベースからユーザー情報を取得して返します。
* DjangoはSQLite、PostgreSQL、MySQLなど多くのデータベースサポートがビルドインされており(デフォルトはSQLite)、データベースに格納するデータはmodels.pyに定義します。また、DjangoにはORM(Object-Relational Mapping)が提供されておりSQLクエリを書くことなくデータベースに格納されたデータを操作できます。
バックエンドは、Webアプリケーションの中核となるビジネスロジックを実装します。例えば、オンラインストアの場合、バックエンドは商品の在庫管理や注文処理などの重要な機能を担当します。
* Djangoはビジネスロジックの実装に適したフレームワークであり、特にユーザー認証周りや権限管理に強みがあります。またDjangoフォームはフロントで入力されたデータを容易に検証(Validation)できます。ビジネスロジックを実装するためにはViewとModelを連携して使用し、ViewはHTTPリクエストを受け取り、適切なModelを操作(データベースのデータを取得)して、HTTPレスポンスを返します。
バックエンドは、外部のシステムやアプリケーションとの通信を可能にするために、API(Application Programming Interface)を提供します。API*は、外部からWebアプリケーションのデータや機能にアクセスするためのプログラムインターフェースを提供するもので、外部からのリクエストに応じてデータを取得・更新することができます。
* ここで言うAPIとはWebAPIのことです。WebAPIとは広義的なAPIとは異なりHTTPプロトコルに則ったリソース・サービスにアクセスするためのAPIです。
* DjangoはDjango RestFramework(以下DRF)というRESTful API*を作成するための拡張フレームワークを提供しています。RESTful APIはフロントエンドとバックエンドの分業開発を容易にします。DjangoではTemplateを用いてHTTPレスポンスを返しますが、DRFで作成したRESTful APIではJSONデータを返しフロントに受け渡します。JSONデータでフロントとやりとりを行うことでSPAを容易に実装できます。課題で使用する必要はありませんが実際の開発では習得必須のため課題修了後に学んでいきましょう。
* RESTの概念・RESTfulとの違いについて知らない人は是非この機会に調べてみましょう!!