第1章. 現代のウェブ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
私が思い描いたようなウェブを、私たちはまだ目にしていない。 未来はまだ、過去よりもずっと大きい。
ティム・バーナーズ=リー
プレビュー
むかしむかし、Webサイトは小さくてシンプルだった。 開発者はPHPやHTML、MySQLの呼び出しを1つのファイルにまとめ、自分のWebサイトをみんなに自慢して楽しんでいた。 しかし、Webサイトはタイムアウトとともに何十、いや何億ものページに成長し、初期の遊び場はテーマパークのメタバースと化した。
この章では、現代のウェブにますます関連するようになったいくつかの点を指摘する:
-
サービスとAPI
-
コンカレンシー
-
レイヤー
-
データ
次の章では、Pythonがこれらの分野で何を提供してくれるかを紹介する。 その後、FastAPIウェブ・フレームワークに飛び込み、それが何を提供してくれるかを見てみよう。
サービスとAPI
HTML、JavaScript、画像などのコンテンツ側での活動はまだ多いが、物事をつなぐアプリケーション・プログラミング・インタフェース(API)がますます重視されるようになっている。
一般的に、Webサービス は低レベルのデータベース・アクセスとミドル・レベルのビジネス・ロジック(多くの場合、バックエンドとしてひとまとめにされる)を処理し、JavaScriptやモバイル・アプリはリッチなトップ・レベルフロントエンド(対話型ユーザー・インターフェース)を提供する。 これらの前者と後者の世界はより複雑化し、分岐しており、通常、開発者はどちらか一方に特化する必要がある。フルスタック開発者になるのは、以前よりも難しくなっている。1
これら2つの世界は、APIを使って互いに会話する。 現代のWebでは、APIの設計はWebサイトそのものの設計と同じくらい重要だ。APIは契約であり、データベースのスキーマに似ている。 APIを定義し修正することは、今や主要な仕事だ。
APIの種類
各APIは以下を定義している:
- プロトコル
-
制御構造
- 形式
-
コンテンツの構造
技術が孤立したマシンからマルチタスク・システム、ネットワーク化されたサーバへと進化するにつれて、複数のAPIメソッドが開発されてきた。 おそらく皆さんは、どこかの時点でこれらの1つ以上に出くわすだろう。そこで、本書で取り上げるHTTPとその仲間たちに入る前に、以下に簡単にまとめておく:
-
Network+以前は、APIとは通常、アプリケーションと同じ言語の ライブラリへの関数呼び出しのような、非常に近い接続を意味していた(例えば、数学ライブラリで平方根を計算する)。
-
リモートプロシージャコール(RPC) は、あたかも呼び出し元のアプリケーションの中にいるかのように、同じマシン上や他のプロセスの関数を呼び出すために考案された。現在よく使われている例は gRPCである。
-
メッセージング 、プロセス間のパイプラインで小さなデータチャンクを送信する。メッセージは動詞のようなコマンドの場合もあれば、名詞のような関心のあるイベントを示すだけの場合もある。現在よく使われているメッセージング・ソリューションには、ツールキットから完全なサーバまでさまざまなものがあり、Apache Kafka、 RabbitMQ、 NATS、 ZeroMQなどがある。通信はさまざまなパターンに従うことができる: ...
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