読み方 : ファストエーピーアイ

FastAPI

FastAPIとは?

PythonWeb APIを開発するためのオープンソースフレームワーク。高速な動作と簡潔なコードで記述できることから、近年広く普及しているライブラリである。
FastAPIのイメージ画像

Webアプリケーションやモバイルアプリは、サーバデータをやり取りするために「API」(Application Programming Interface)という仕組みを利用する。FastAPIはそのAPIを効率よく開発するためのツールであり、Pythonのコードを書くだけでAPIエンドポイントURLと処理の対応)を定義できる。内部的には「Starlette」というWebフレームワークと「Pydantic」というデータ検証ライブラリを組み合わせて構成されている。

FastAPIの処理速度は、従来からよく使われてきた「Django」や「Flask」といったPythonフレームワークと比べて高速であるとされる。これはPython 3.5以降で導入された非同期処理(async/await)を用いた「ASGI」(Asynchronous Server Gateway Interface)というWebサーバ仕様に対応しているためである。複数のリクエストを効率的に処理でき、Node.jsなど他言語やフレームワークに近い性能を発揮するとされる。

コードからAPI仕様書(ドキュメント)を自動生成する機能も備わっており、エンドポイントの定義と型情報をもとに、OpenAPI(旧Swagger)形式の仕様書が自動的に生成される。Webブラウザ上で動作する対話型APIドキュメントが同時に提供される。開発中にエンドポイントの追加や変更を行うと、ドキュメントも即座に更新されるため、仕様管理と実装の整合性を保ちやすい環境が構築される。

「型ヒント」(Type Hints)と呼ばれるPythonの機能を積極的に活用しており、引数や戻り値にデータ型を明示することで、誤ったデータが送られた際に自動で検証(バリデーション)が行われる。これにより、JSONなどで送信されたデータの形式チェックや必須項目の確認を個別に実装する必要が少なくなる。エラー時には検証結果が整形された形式で返されるため、API利用者と開発者の双方にとって挙動を把握しやすい構成となっている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。