FastAPIは、PythonでWeb APIを簡単に開発するためのモダンなフレームワークです。FastAPIは、高速で直感的に開発を行うことができ、静的型付けと自動型推論をサポートしており、安全なAPIを構築する際に非常に便利です。今回は、FastAPIの基礎を80分で学ぶチュートリアルを提供します。
- FastAPIのインストール
まずは、FastAPIをインストールします。以下のコマンドを実行して、FastAPIをインストールします。
pip install fastapi
- uvicornのインストール
次に、FastAPIを実行するために、uvicornというASGIサーバーをインストールします。以下のコマンドを実行して、uvicornをインストールします。
pip install uvicorn
- FastAPIアプリケーションの作成
FastAPIのアプリケーションを作成するために、以下のコードを含むmain.pyファイルを作成します。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
- FastAPIアプリケーションの実行
以下のコマンドを使用して、uvicornを使用してFastAPIアプリケーションを実行します。
uvicorn main:app --reload
このコマンドを実行すると、FastAPIアプリケーションが起動し、http://127.0.0.1:8000/ でアクセスできるようになります。ブラウザでこのURLにアクセスすると、{"Hello": "World"}というレスポンスが表示されます。
- パスとパラメータの追加
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というパラメータを受け取り、それをそのまま返す処理を行っています。アプリケーションを再起動することで、新しいエンドポイントが追加されます。
- リクエストボディの処理
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モデルのデータを受け取ってそのまま返す処理を行っています。
- ドキュメントの自動生成
FastAPIは、自動的にSwagger UIを生成してAPIのドキュメントを表示することができます。http://127.0.0.1:8000/docs にアクセスすると、自動生成されたAPIのドキュメントが表示されます。
以上が、FastAPIの基礎を80分でマスターするためのチュートリアルです。FastAPIを使用することで、PythonでのWeb API開発が簡単に行えるようになりますので、ぜひ活用してみてください。
37:00
ここからfastapiの説明
最安値クーポンのリンクから入っても、値引きされていないのはなぜでしょうか?
41:47 非同期処理
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
クエリパラメータ実践
型ヒントからの説明たすかる
超入門を終わった人向けの超入門復習レベルです。超入門としてはじめてにはお勧めしません。
web apiについては何となく分かってきました。ありがとうございます。
質問! templateのhtmlにbootstrpのpathが通らないのですが。。。
templateフォルダもしくは、その上のcontrol.pyのある同階層に.jsbootstrap.min.jsと.cssbootstrap.min.cssに配置させて<link>タグでincludeさせても読み込み失敗となります。
pathが通らないのでCDNでbootstrap,JQueryを使用してる(サイト直読みなので問題がない)のですが、ローカル配備でパスを通らせるには、どこに置くべきでしょう?
unicron起動させてローカルでWebアプリをウニウニ弄ってるんですが~教えて欲しい~
ゼッシュは初めて聞きました
いやfastAPIはどちらかというと遅いですよ
デプロイ時にレンタルサーバーではPythonどうやって動かすんですか?
いつも有益な情報ありがとうございます。
すいません、この動画のようにuvicorn main:app –reloadを行ったところ、
error loading ASGI app.Could not import module "main"
とwinError 5 アクセスが拒否されたと言うエラーが発生します。
どうやったら、エラー解消できますでしょうか?
とてもわかりやすい説明で、いつも参考になっています。
本編とは関係ありませんが、冒頭で使っていたプレゼンテーション(?)のソフトは、なんというのですか…?とてもみやすくて、自分も使ってみたいです。
企業用の年間ライセンスのUdemyに反映されるのはいつでしょうか? まだ、最新のコンテンツは、企業用のUdemyには反映されてません。