【FastAPI初級】80分で習得する直感的なWeb API開発が可能な新しいPython WebフレームワークFastAPIの基礎

Posted by


FastAPIは、PythonでWeb APIを簡単に開発するためのモダンなフレームワークです。FastAPIは、高速で直感的に開発を行うことができ、静的型付けと自動型推論をサポートしており、安全なAPIを構築する際に非常に便利です。今回は、FastAPIの基礎を80分で学ぶチュートリアルを提供します。

  1. FastAPIのインストール
    まずは、FastAPIをインストールします。以下のコマンドを実行して、FastAPIをインストールします。
pip install fastapi
  1. uvicornのインストール
    次に、FastAPIを実行するために、uvicornというASGIサーバーをインストールします。以下のコマンドを実行して、uvicornをインストールします。
pip install uvicorn
  1. FastAPIアプリケーションの作成
    FastAPIのアプリケーションを作成するために、以下のコードを含むmain.pyファイルを作成します。
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"Hello": "World"}
  1. FastAPIアプリケーションの実行
    以下のコマンドを使用して、uvicornを使用してFastAPIアプリケーションを実行します。
uvicorn main:app --reload

このコマンドを実行すると、FastAPIアプリケーションが起動し、http://127.0.0.1:8000/ でアクセスできるようになります。ブラウザでこのURLにアクセスすると、{"Hello": "World"}というレスポンスが表示されます。

  1. パスとパラメータの追加
    FastAPIでは、ルーティングやパラメータの受け取りが簡単に行えます。以下のコードをmain.pyに追加して、パスとパラメータを処理できるようにします。
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

このコードでは、/items/{item_id}というパスで、item_idとqというパラメータを受け取り、それをそのまま返す処理を行っています。アプリケーションを再起動することで、新しいエンドポイントが追加されます。

  1. リクエストボディの処理
    FastAPIでは、リクエストボディの処理も簡単に行うことができます。以下のコードをmain.pyに追加して、リクエストボディを受け取る処理を追加します。
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
async def create_item(item: Item):
    return item

このコードでは、ItemというPydanticモデルを定義し、 /items/ というパスでPOSTメソッドを受け付け、Itemモデルのデータを受け取ってそのまま返す処理を行っています。

  1. ドキュメントの自動生成
    FastAPIは、自動的にSwagger UIを生成してAPIのドキュメントを表示することができます。http://127.0.0.1:8000/docs にアクセスすると、自動生成されたAPIのドキュメントが表示されます。

以上が、FastAPIの基礎を80分でマスターするためのチュートリアルです。FastAPIを使用することで、PythonでのWeb API開発が簡単に行えるようになりますので、ぜひ活用してみてください。

0 0 votes
Article Rating

Leave a Reply

14 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@takeokojo2262
9 days ago

37:00
ここからfastapiの説明

@innovationlab4558
9 days ago

最安値クーポンのリンクから入っても、値引きされていないのはなぜでしょうか?

@hakusai3325
9 days ago

41:47 非同期処理

@hakusai3325
9 days ago

41:04

デコレーター@

直下の関数から値を受け取り、それを使って処理をする

41:43

非同期処理

43:00

サーバ起動

44:28

起動したURLに飛ぶ

45:57

APIドキュメント自動生成

52:55

パスに応じて処理を書く

53:55

パスを保存して処理として使う

(商品ごとに処理を変えたい時に使う)

57:28

型ヒント

1:02:07

型ヒントとドキュメント

1:03:56

コードの記述順番

1:06:52

クエリパラメータとは

1:10:20

クエリパラメータ実践

@mamesiva64
9 days ago

型ヒントからの説明たすかる

@Knock_s
9 days ago

超入門を終わった人向けの超入門復習レベルです。超入門としてはじめてにはお勧めしません。

@kunime-ji5066
9 days ago

web apiについては何となく分かってきました。ありがとうございます。

@user-wf7wn8bg7g
9 days ago

質問! templateのhtmlにbootstrpのpathが通らないのですが。。。
templateフォルダもしくは、その上のcontrol.pyのある同階層に.jsbootstrap.min.jsと.cssbootstrap.min.cssに配置させて<link>タグでincludeさせても読み込み失敗となります。
pathが通らないのでCDNでbootstrap,JQueryを使用してる(サイト直読みなので問題がない)のですが、ローカル配備でパスを通らせるには、どこに置くべきでしょう?
unicron起動させてローカルでWebアプリをウニウニ弄ってるんですが~教えて欲しい~

@yokotesimin2058
9 days ago

ゼッシュは初めて聞きました

@applecomputer6585
9 days ago

いやfastAPIはどちらかというと遅いですよ

@a-msy
9 days ago

デプロイ時にレンタルサーバーではPythonどうやって動かすんですか?

@user-ot9qq2jx9y
9 days ago

いつも有益な情報ありがとうございます。
すいません、この動画のようにuvicorn main:app –reloadを行ったところ、
error loading ASGI app.Could not import module "main"
とwinError 5 アクセスが拒否されたと言うエラーが発生します。

どうやったら、エラー解消できますでしょうか?

@user-bu7vp8gf4b
9 days ago

とてもわかりやすい説明で、いつも参考になっています。
本編とは関係ありませんが、冒頭で使っていたプレゼンテーション(?)のソフトは、なんというのですか…?とてもみやすくて、自分も使ってみたいです。

@yosshi2028
9 days ago

企業用の年間ライセンスのUdemyに反映されるのはいつでしょうか? まだ、最新のコンテンツは、企業用のUdemyには反映されてません。

14
0
Would love your thoughts, please comment.x
()
x