0.はじめに
こんにちは!watnow1回生のJPです。
何書いたらいいんやろって思ってたら、ギリギリになっていて焦り始めています。そんな感じで悩んでいたらちょうどいいもの見つけたのでそれについて書きます。
初めて記事書くのでお手柔らかにお願いします
今回僕が書くのはFastAPIについてです!!
私は、ハッカソンでFastAPIを使用したのですが、いまいち理解できていないのでこの機会に復習を兼ねて書こうと思いました。
ぜひみなさん見ていってください!
1.まずFastAPIってなに??
FastAPIとはPythonでAPIを開発するために開発されたWebフレームワークです。名前にもある通り「動作が早い(Fast)]ことが特徴です。開発者にとっても「早くコード」が書けるというメリットがあります。
関係ないんですけど、APIとFastAPIって何が違うんやろって思って調べてみました。
API = 「作りたいもの(ゴール)」
FastAPI = 「それを作るための道具(ツール)」
たとえるなら、「料理(API)」を作りたいときに使う「超便利な包丁(FastAPI)」みたいな関係らしいです。 つまり何が言いたいかというと、FastAPIは私たちがAPIを作るのを楽にしてくれる、最強の味方なんですわ。
2.FastAPIの特徴
① 少ないコード量で実装できる:設計がシンプルで初心者でも操作しやすい。
② バグが少ない:Pythonの「型ヒント」という機能を活用しており、エディタの補完が効きやすく、ミスを事前に防げます。
③ デフォルトでAPIドキュメントを出力できる:コードを書くだけで、APIの仕様書(Swagger UI)を自動生成してくれる。これがハッカソンなどでめちゃくちゃ便利です!
3.実際に動かしてみよう!!
今回はDockerなどは使わず、自分のPC(ローカル環境)で簡単に書いて動かす方法でやってみます。
手順① 仮想環境に入ろう!! (重要)
いきなりインストールするのではなく、プロジェクト専用の部屋(仮想環境)を作ります。これをしておかないと、PC全体にライブラリが入ってしまって管理が大変になります。ターミナルで、作業したいフォルダに移動してから以下のコマンドを打ちます
Windowsの場合↓
python -m venv venv
venv\Scripts\activate
コマンドを打った後、ターミナルの先頭に (venv) と表示されていればOKです!
手順②:インストール
まずはライブラリを入れます。FastAPI本体と、それを動かすためのサーバーである uvicornをインストールします。
ターミナルで以下のコマンドを実行します。
pip install fastapi "uvicorn[standard]"
これだけで環境構築は完了です。
手順③:コードを書く
適当なフォルダに main.py というファイルを作って、以下のコードを書きます。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def hello():
return {"message": "Hello, World"}
手順④:FastAPIを起動する
main.pyを保存したら、FastAPIを起動してみましょう!
下記のコマンドをターミナルで実行します。
uvicorn main:app --reload
・main: ファイル名(main.py)
・app: コード内の変数名(app = FastAPI())
・--reload: コードを変更したら自動で再起動してくれるオプション
実行して以下のようなログがでたら成功です!
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
ブラウザで http://127.0.0.1:8000 にアクセスすると、{"message": "Hello,World"} が表示されます!
4.まとめ
今回は復習も兼ねて、Dockerを使わずにローカル環境でFastAPIを動かす方法をまとめてみました。
時間の都合で実際の画面はお見せできませんでしたが、特徴で紹介した「ドキュメント機能」も便利です。今回作った環境で、ブラウザのURLの最後に /docs をつけるだけで体験できるので、ぜひ自分の手で動かして感動を味わってみてください!
私は今回の秋プロで選択APIってのを作ったのですが、その説明は最終発表でやることにします。
5.おわりに
ちゃんと書けてるか分からないですが、ここまで見てくださりありがとうございます!! 間違っているところあったら教えてください![]()
初めての記事作成で緊張しましたが、これを機にアウトプットも頑張っていこうと思います。では終わりにします!!
おやすみなさい