アーカイブ
はじめに
先日、Django Rest frameworkを使ってAPIを作成するというブログを公開しましたが、色々調べてみると
PythonにはFastAPIという簡単に高速にAPIを作成するためのフレームワークが用意されていることを知りました。
調べてみると面白そうだったので、今回はFastAPIを使って、簡単なAPIを作成してみようと思います!
FastAPIにはチュートリアルがあるので、そちらを行ってみようと思います!
目次
- 環境について
- FastAPIとは
- FastAPIでAPIを作成する
- FastAPIを学習した感想
環境
- OS: macOS BigSur 11.2.3
- Python: 3.8.2
- fastapi: 0.78.0
- uvicorn: 0.17.6
FastAPIとは
FastAPIはPython3.6以降でAPI構築するための高速(高パフォーマンス)なWebフレームワークです。
FastAPIの特徴として以下が挙げられます。
- 自動的にSwaggerUIのドキュメントが生成される
- 高速(NodeJSやGoのように早い)
- コードをより簡単に、より早く書ける
- 型安全な開発ができる
FastAPIは2018年にリリースされたフレームワークにも関わらず、Githubのスター数は以下のようになっていました。(2022年5月現在)
- Django : 6,4100
- Flask : 5,9000
- FastAPI : 4,5200
※ スター数は こちら から検索できます
Djangoは2005年、Flaskは2010年にリリースされているので、FastAPIがいかにすごいスピードで広まっているかがわかりますね。
最近では、SPAでバックエンドはAPIを作成するだけみたいなのがトレンドとしてあるようなのでこれからもっとFastAPIの勢いがあがるかも知れませんね。
FastAPIでAPIを作成する
まず適当なフォルダを作成し、その中にPythonの仮想環境を作成します。
~$ mkdir fastapi (fastapiフォルダを作成する)
~$ cd fastapi (fastapiフォルダに移動)
fastapi $ python3 -m venv fastapi_venv
次に仮想環境をアクティブにします。
fastapi $ . fastapi_venv/bin/activate
次に必要なパッケージをインストールします。
$ pip install fastapi uvicorn
これで必要なパッケージは以上です。
次にmainファイルを作成していきます。
main.py
from fastapi import FastAPI
# FastAPIのインスタンスを作成
app = FastAPI()
@app.get("/")
def root():
return {"message": "HelloWorld"}
必要な記述はこれだけです。
@app.get("/")はFastAPIでパスオペレーションデコレータというようで他にも
- @app.post("")
- @app.put("")
- @app.delete("")
などいったものがあるようです。
次にサーバーを起動します。
$ uvicorn main:app --reload
これで起動できます。
ブラウザで http://127.0.0.1:8000 にアクセスしてみましょう
JSONレスポンスが表示されました。
次に、http://127.0.0.1:8000/docs にアクセスします。
こちらがFastAPI側によって自動的に生成されるSwaggerUIを用いたドキュメントになります。
このようにFastAPIでは簡単にWebAPIを作成することができます。
FastAPIを学習した感想
今回は、FastAPIを使って簡単なAPIを作成しましたが、
近いうちにデータベースとも繋げてCRUD処理ができるようなものも作成してします!
最後まで見ていただきありがとうございました!