Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

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

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

中村 拓也

中村 拓也

Updated on 11月 12, 2024

ファイルのアップロードは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の特徴といえば、主に次のようなものがあります:

  • シンプルでintuitiveな設計:ルーティング、リクエスト、レスポンスなどの機能がよく構造化されている
  • 超高速:他のPythonフレームワークよりもはるかに高速に動作する
  • 自動生成されるインタラクティブドキュメント:OpenAPI標準に準拠したドキュメントが自動生成される
  • データ検証:Pydanticを利用したデータ検証機能
  • シンプルなデプロイ: ASGIサーバーとの親和性が高い
  • 機械学習対応:TensorFlowやPyTorchとのインテグレーションが容易

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

初学者向け:Ollamaを使ってDeepSeek R1を簡単にローカルで動かす方法チュートリアル

初学者向け:Ollamaを使ってDeepSeek R1を簡単にローカルで動かす方法

Ollamaを使用してDeepSeek R1をローカルで実行することにより、アプリに高度なAI機能を統合できます。このガイドは手順を詳細に説明し、Apidogを活用してAPIの開発とテストを効率的に行い、開発プロセスを簡素化します。

中村 拓也

1月 21, 2025

ApidogとGoogle Analyticsの統合:主要なAPIドキュメント指標を追跡するチュートリアル

ApidogとGoogle Analyticsの統合:主要なAPIドキュメント指標を追跡する

ApidogとGoogleアナリティクスを統合することで、APIドキュメントの主要な指標を追跡し、貴重なユーザー洞察を得て、エクスペリエンスを改善し、API採用率を向上させることができます。

中村 拓也

12月 31, 2024

ApidogでバックエンドAPI開発の効率をどう向上させるか?チュートリアル

ApidogでバックエンドAPI開発の効率をどう向上させるか?

ApidogはAPI管理の全体的なソリューションを提供し、定義からデバッグ、ドキュメント作成までバックエンド開発を最適化します。プロジェクトの規模に関わらず、開発者が効率的に作業を完了するのを支援します。

中村 拓也

11月 25, 2024