Apidog

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

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / 操作ガイド / ガイド:FastAPIでファイルをアップロードする方法

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

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

ファイルのアップロードは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

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。