LoginSignup
0
0

More than 1 year has passed since last update.

爆速でFast APIチュートリアル触ってみた。公式ドキュメント読むの嫌いな人向け。

Last updated at Posted at 2022-12-03

経緯

これまではフロントをメインに業務を行なっていたが、業務の都合上バックエンドも挑戦して欲しいと提案してもらえた。
ただ何も知らなすぎるためひとまず公式チュートリアルを翻訳しながらSwaggerとredocの表示まで進めてみた。

前提条件

python, pip, uvicorn, fastAPIがインストールされていること

チュートリアルには特に書いておらず、全てのインストール方法を調べるのが面倒だった。

python

brew install python3

非常に高速なASGIサーバーのこと。
Fast API利用に必要。
https://www.uvicorn.org/

uvicorn

pip3 install uvicorn 

fast api

pip3 install fastapi

公式チュートリアル

ファイル作成

一番シンプルなFast apiのファイルを作ってみましょう。

main.py
# starlette(https://www.starlette.io/)から継承したFastAPIクラス
from fastapi import FastAPI

# 全てのAPI作成の基
# サーバーの起動コマンドにも利用
app = FastAPI()


# パスは"/", getリクエスト処理
@app.get("/")
# 通常のpythonの関数定義
async def root():
    # "/"にgetリクエストを行った時のレスポンス内容
    return {"message": "Hello World"}

※ ファイル名はmain.pyとすること(実行時にこのファイル名を指定するため)

コマンド実行

それでは実行してみましょう

uvicorn main:app --reload

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [28720]
INFO:     Started server process [28722]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

※ 上記コマンドの意味

main: コードを記述したファイル名
app: main.pyで作成されたFastAPIのオブジェクト "app = FastAPI()" 
--reload: コードに変更があると、その変更を検知し、サーバーをリスタートする(ホットリロード)

結果確認

JSONレスポンス確認

上記のコマンドを打つと、下記のようなものがあるでしょう

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

このURLをcmd+clickするか、ブラウザに打ち込んでみましょう。

{"message": "Hello World"}

というJSONのレスポンスが表示されたかと思います。

Swagger確認

http://127.0.0.1:8000/docsとすると、下記のようにSwagger UIによるAPIのドキュメントが自動で生成されます。
image.png

redoc確認

http://127.0.0.1:8000/redoc

とすると、

下記のようにredocによるAPIのドキュメントが自動で生成されます。

image.png

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0