第8章. ウェブ・レイヤー
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
プレビュー
第 3 章 では、FastAPI Web エンドポイントを定義し、簡単な文字列入力を渡し、 レスポンスを取得する方法を簡単に説明しました。この章では、FastAPI アプリケーションの最上位レイヤ(インターフェイスレイヤまたはルータレイヤとも呼ばれる)、およびサービス レイヤとデータ レイヤとの統合についてさらに詳しく説明します。
前回同様、小さな例から始めることにする。 そして、よりすっきりとした開発と成長を可能にするために、レイヤーをサブセクションに分け、いくつかの構造を紹介する。 書くコードが少なければ少ないほど、後で思い出したり修正したりする必要がなくなる。
本書の基本的なサンプルデータは、想像上の生物、すなわち クリプトイドとその探検家に関するものである。他の情報領域との類似性を発見できるかもしれない。
一般的に、私たちは情報をどうするのか? 多くのWebサイトと同様に、私たちのWebサイトでは、次のような方法を提供する:
-
検索する
-
作成する
-
修正する
-
交換する
-
削除する
上から順に、データに対してこれらの関数を実行するWebエンドポイントを作成していく。 最初は、どのWebクライアントでもエンドポイントが動作するように、偽のデータを提供する。 次の章では、偽のデータのコードを下のレイヤーに移していく。 それぞれのステップで、サイトが正常に動作し、データが正しく通過することを確認する。 最後に、第10章では、完全なエンド・ツー・エンド(Web → サービス → データ)のWebサイトを実現するために、偽のデータを取り除き、本物のデータを本物のデータベースにストアする。
注
第11章では、ロールを定義し、誰が何をできるかを制限するために必要な 認証認可(authenticationandauthorization)について説明する。本章の残りの部分では、認証は省略し、生のウェブ関数の扱い方だけを説明する。
間奏曲トップダウン、ボトムアップ、ミドルアウト?
Webサイトをデザインする場合、以下のいずれかから始めることができる:
-
ウェブ・レイヤーと下層への作業
-
データレイヤーとワークアップ
-
サービス・レイヤーは双方向に機能する。
すでにデータベースがあり、データがインストールされ、それを世界と共有する方法が欲しくてたまらないのだろうか? もしそうなら、まずデータレイヤーのコードとテストに取り組み、次にサービスレイヤーに取り組み、最後にウェブレイヤーを書くといいだろう。
ドメイン駆動設計に従うのであれば、真ん中のサービスレイヤーから始めて、コアとなるエンティティやデータモデルを定義するかもしれない。あるいは、まずWebインタフェースを進化させ、下位レイヤーに期待することがわかるまで、下位レイヤーへの呼び出しをフェイクにしたいかもしれない。
これらの本には、非常に優れたデザイン論や推奨事項が発見できるだろう:
-
Pythonで学ぶクリーンアーキテクチャ(デジタルキャットブックス)
-
PythonによるアーキテクチャパターンHarry J.W. Percival and Bob Gregory著 (O'Reilly)
-
マイクロサービスAPIby José Haro Peralta (Manning)
どのように進めるかは、すでに持っているデータや、サイト構築の作業にどのように取り組みたいかに大きく左右される。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access