ガイド:FastAPIでファイルをアップロードする方法

本文では、FastAPIでファイルをアップローする方法を皆さんに紹介します。本ガイドを参照して、FastAPIのファイルアップロード方法、ユースケース、IDEエディターで実装する手順などを手に入れることができます。

中村 拓也

中村 拓也

24 7月 2025

ガイド:FastAPIでファイルをアップロードする方法

ファイルのアップロードはWebアプリで最も頻繁に利用される機能として、ファイルをサーバーにアップロードすることを意味しています。そして、FastAPIは、Python言語のWeb開発フレームワークとして、ファイルのアップロードに対応できます。そこで、本文では、FastAPIでファイルをアップローする方法を皆さんに紹介します。本ガイドを参照して、FastAPIのファイルアップロード方法、ユースケース、IDEエディターで実装する手順などを手に入れることができます。

💡
FastAPIでWebアプリかAPIを作成した後、Apidogという使いやすいAPI管理ツールを使ってFastAPIのインターフェースを便利にテストすることができます。

Apidogは、API設計、ドキュメンテーション、テストやモックなどにも対応できる包括的なAPI管理ツールとして、HTTP、gRPC、Websocketなど様々なプロトコルにも互換できます。下記のボタンからApidogを完全無料で利用し始めましょう👇👇👇
button

FastAPIとは

FastAPIは、高性能なAPI開発を実現するためのPythonフレームワークで、StarletteとPydanticライブラリーに基づいています。REST API開発における新しいスタンダードとして、Pythonコミュニティで急速に注目を集めているフレームワークです。 機械学習プロジェクト等での利用に適している点が大きな特徴です。

公式サイト:https://fastapi.tiangolo.com/ja/

FastAPI

FastAPIの特徴といえば、主に次のようなものがあります:

FastAPIでファイルをアップロードする

それでは、この部分では、FastAPIでファイルをアップロードする方法を皆さんに紹介します。

まず、FastAPIがパソコンにきちんとインストールされていることを確保する必要があります。まだインストールしていない場合は、次のコマンドで、pipを利用してFastAPIをインストールすることができます:

pip install fastapi

pip install python-multipart

そして、簡単なFastAPIアプリを作成して、ファイルアップロードへのサポートを追加します。ここで、IDEエディターで fastapi-file.pyというファイルを作成して、次のコードを当該ファイルに貼り付けましょう。

from fastapi import FastAPI, UploadFile, File

app = FastAPI()

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    contents = await file.read()
    return {"filename": file.filename, "contents": contents}


if __name__ == "__main__":
    import uvicorn

    uvicorn.run(app, host="127.0.0.1", port=8000)

上記のコードでは、ファイルを受けるために、 /uploadfile/というルーディングを作成しました。そして、 create_upload_file() という関数では、 UploadFileクラスをパラメータとして、アップロードファイルを受信するように設定しています。最後に、 read()メソッドを利用して、ファイルの内容を読み込んたり、処理したりしています。

このケースでは、ファイル名と内容をJSONフォーマットのレスポンスで返すと設定されています。

アプリを実行

FastAPIのアプリを実行してファイルアップロードの機能をテストするには、uvicornのようなASGIサーバーを利用する必要があります。そこで、 uvicornがインストールされることを確認してください。

まだインストールされていない場合は、次のコマンドでpipを利用してインストールすることができます:

pip install uvicorn

そして、IDEエディターでターミナルを開き、 fastapi-file.py が保存されているディレクトリにナビゲートします。最後に、次のコマンドでFastAPIのアプリを起動することができます:

uvicorn fastapi-file:app --reload

ここで、FastAPIのアプリが成功に起動され、cURL、ApidogのようなHTTPリクエストツールを利用して、 http://localhost:8000/uploadfile/ にファイルをアップロードしてPOSTリクエストを送信できるようになります。そして、ファイル名とファイルの内容をレスポンスで確認できるはずです。

button

ApidogでAPIを簡単にテスト

FastAPIでWebアプリかAPIを作成した後、Apidogという使いやすいAPI管理ツールを使ってFastAPIのインターフェースを便利にテストすることができます。Apidogは、API設計、ドキュメンテーション、テストやモックなどにも対応できる包括的なAPI管理ツールとして、HTTP、gRPC、Websocketなど様々なプロトコルにも互換できます。

例えば、FastAPIのファイルアップロード機能をテストするために、Apidogで新しいリクエストを作成して、HTTPメソッドをPOSTに指定し、APIのエンドポイントURLを記入した上、Bodyでfrom-dataでデータのタイプをfileに変更することで、簡単にファイルをアップロードすることができます。

ファイルのアップロード

また、もしこのエンドポイントの使用がApidogに保存されている場合、Apidogは、レスポンスがAPI仕様書に掲載されているレスポンスの定義に一致されているかどうかを自動検証してくれますので、非常に便利です。

まとめ

以上、本ガイドではFastAPIを利用して、WebアプリやAPIにファイルアップロード機能を実装する方法をご紹介しました。

具体的には、FastAPIでルーティングとエンドポイントを設定し、UploadFileクラスを使ってアップロードされたファイルを処理する方法を解説しました。また、uvicornでアプリを起動して機能をテストしたり、Apidogで便利にAPIインターフェースをテストできることもわかりました。

button

Explore more

Claudeのメモリ機能の使い方と設定手順まとめ

Claudeのメモリ機能の使い方と設定手順まとめ

Claudeの新機能「メモリ」(Claude Memory)を使えば、AIがあなたの好みや指示を記憶して、よりパーソナライズされた応答をしてくれます。この記事では、メモリ機能の有効化手順、設定画面のポイント、注意すべき点を詳しく解説します。

13 9月 2025

【実践編】Claude CodeにGPT-OSSを統合する方法

【実践編】Claude CodeにGPT-OSSを統合する方法

本記事では、Claude CodeでGPT-OSSを活用する方法を解説。Hugging Faceでのセルフホスト、OpenRouter経由のプロキシ、LiteLLMによるモデル切替などで、高効率かつ低コストなAIコーディング環境を構築します。

8 8月 2025

Claude Codeと連携するSerena MCPサーバーの使い方

Claude Codeと連携するSerena MCPサーバーの使い方

本記事では、Serena MCPサーバーの導入と使い方を解説します。Claude CodeやCursorなどと連携し、無料でAI支援コーディングを始める方法と、ワークフロー効率化の可能性を紹介します。

8 8月 2025

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる