Skip to Content
ファストAPI
book

ファストAPI

by Bill Lubanovic
March 2025
Intermediate to advanced
280 pages
3h 20m
Japanese
O'Reilly Media, Inc.
Content preview from ファストAPI

第4章. 非同期、同時実行、スターレットツアー

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

Starlette は軽量なASGIフレームワーク/ツールキットで、Pythonで非同期ウェブサービスを構築するのに適している。

トム・クリスティ(スターレット開発者

プレビュー

前の章では、開発者が新しい FastAPI アプリケーションを書くときに最初に遭遇することを簡単に紹介した。 この章では、FastAPI の基礎となる Starlette ライブラリ、特に非同期処理のサポートに重点を置く。 Python で「一度に多くのことを行う」複数の方法を概観した後、新しいasyncawaitキーワードが Starlette と FastAPI にどのように組み込まれているかを見る。

スターレット

FastAPIのウェブ・コードの大部分()は、Tom Christieが作成したStarletteパッケージに基づいている。Starletteは、それ自体でウェブ・フレームワークとして使うこともできるし、FastAPIのような他のフレームワークのライブラリとして使うこともできる。 他のウェブ・フレームワークと同様に、Starletteは通常のHTTPリクエスト・パースとレスポンス生成をすべて処理する。 これは、Flaskの基盤となっているWerkzeugパッケージと似ている()。

しかし、その最も重要な特徴は、最新のPython非同期Web標準:ASGIをサポートしていることだ。これまで、ほとんどのPython Webフレームワーク(FlaskやDjangoなど)は、従来の同期WSGI標準に基づいていた。Webアプリケーションは、はるかに遅いコード(データベース、ファイル、ネットワークアクセスなど)に接続することが多いため、ASGIはWSGIベースのアプリケーションのブロッキングやビジーウェイトを回避することができる。

その結果、Starletteとそれを使ったフレームワークは、GoやNode.jsアプリケーション に匹敵する、最速のPythonウェブパッケージとなった。

並行処理の種類

StarletteとFastAPIが提供する非同期サポートの詳細に入る前に、同時実行を実装する複数の方法を知っておくと便利だ。

並列コンピューティングでは、タスクが複数の専用CPUに同時に分散される。 これは、グラフィックスやマシン学習のような「数をこなす」アプリケーションでは一般的だ。

コンカレント・コンピューティングでは、各CPUが複数のタスクを切り替えて実行する。 タスクによっては他のタスクよりも時間がかかるものもあり、合計所要時間を短縮したい。 ファイルの読み取りやリモート・ネットワーク・サービスへのアクセスは、CPUで計算を実行するよりも文字通り数千倍から数百万倍遅い。

Webアプリケーションは、この遅い作業の多くを行う。 どのようにすれば、Webサーバ、あるいはどのようなサーバでも高速に動作させることができるのだろうか? この章では、システム全体から、この章の焦点であるPythonのasyncawait のFastAPIの実装に至るまで、いくつかの可能性について議論する。

分散・並列コンピューティング

もし、、本当に大きなアプリケーション、つまりシングルCPUではハァハァしてしまうようなアプリケーションがあれば、そのアプリケーションを分割して、シングルマシンやマルチマシンの別々のCPUで実行させることができる。 ...

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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

GitHubアクションを学ぶ

GitHubアクションを学ぶ

Brent Laster
仕事ではじめる機械学習 第2版

仕事ではじめる機械学習 第2版

有賀 康顕, 中山 心太, 西林 孝

Publisher Resources

ISBN: 9798341624658