2024年12月24日

【初心者向け】FastAPI解説


Content
こんにちは。

この記事では、近年急速に人気を集めているFastAPIの概要、データベースアクセスを伴わない簡単なWebAPIの開発方法をコードを交えて解説していきます。

FastAPIとは

FastAPIとは、DjangoやFlaskと同じPythonのフレームワークです。
StarletteとPydanticというライブラリをベースにしており、高速かつ安全なAPI開発が行えます。
また、非同期処理に対応していることによる高速な動作、APIドキュメントの自動生成が可能などの特徴を持っています。
公式サイト:https://fastapi.tiangolo.com/ja/

WebAPI作成

以降では、ローカルで動かすことを前提として、データベースアクセスを伴わない簡単なWebAPIを作成します。

事前準備

FastAPIでWebAPIを開発するための事前準備を行います。

前提

  • Python3.7以降がインストール済みであること
  • 本記事では、Windowsでの動作を想定しています

FastAPIのインストール

以下のコマンドでFastAPIをインストールします。

pip install fastapi

同時にASGIサーバであるuvicornもインストールしておきます。(FastAPIのアプリケーションを起動する際に必要になります)

pip install uvicorn

これで、WebAPIを作成する準備が完了しました。

コードを作成する

GETリクエストを受け取り、固定値のディクショナリを返却する単純なWebAPIを作成してみます。
test.pyを作成し、以下のコードを入力します。


from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def test():
return {"result": "HelloWorld"}

ターミナル等で以下のコマンドを実行します。

uvicorn test:app --reload

http://127.0.0.1:8000をブラウザで開くと、{“result”:”HelloWorld”}が表示されたと思います。
このように、データベースアクセスを伴わない固定のディクショナリを返却するような簡単なWebAPIを作成するだけであれば、数ステップでWebAPIが作成できます。
(実際には、このような単純な仕様が求められることは、ほとんどの場合であり得ないと思いますが)

自動生成されるドキュメントの使い方

FastAPIでは、自動的にAPIドキュメントが生成されます。
URLの末尾に/docsを付けると生成されたドキュメントの確認が可能です。

api_doc

また、openapi.jsonのリンクをクリックすることにより、JSONとして出力することも可能です。
出力したJSONはSwagger UIなどで参照することが可能なため、スキーマ駆動開発を採用しているプロジェクトでは、自動生成により工数減が見込めるのではないかと思います。


{
"openapi": "3.1.0",
"info": {
"title": "FastAPI",
"version": "0.1.0"
},
"paths": {
"/": {
"get": {
"summary": "Test",
"operationId": "test__get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {

}
}
}
}
}
}
}
}
}

まとめ

本記事では、FastAPIの概要、簡単なWebAPIの作成を行いました。
今回解説した内容はFastAPIの機能のごく一部です。
他にも、型ヒントの活用や非同期処理等のFastAPIを使用する上で活用したい機能もまだまだありますので、是非お調べいただければと思います。
最後までお読みいただき、ありがとうございました。

2024年12月24日 【初心者向け】FastAPI解説

Category 技術開発

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら