以前まではFlaskというpythonのwebアプリケーションFWを使用してましたが、
どうやらFastAPIなるものが賑わっているみたい。
では、早速さわってみましょー。
動作環境&インストール
OS:windows10
python:3.8.2
FastAPIはASGIアプリケーションFWと称されるみたい。
ASGIはAsyncronous Server Gateway Interfaceの略で非同期web処理のpython規格。
これと似たものにWSGIがあり、これはWeb Server Gateway Interfaceの略で、
pythonのwebサーバとアプリケーションの通信規格。
ASGIはWSGIを後継した上で、非同期処理をしているそう。
また、FastAPIはそれ単体ではサーバ機能を含まないので、
webサーバと一緒に使用します。
今回はuvicornというASGIサーバを使用します。
WSGIのサーバは、Gunicornというのが有名みたい。
uvicornもGunicorn上で動作させることもできるみたいですが、
今回はuvicorn単体でやろうと思います。
インストール
インストールはサクッとpipで。
pip install fastapi pip install uvicorn[standard]
※ uvicornはstandardをつけないと最小インストールになり
必要なライブラリがないことがあるみたいなので、つけておくのが無難。
Hello World!
なにわともあれ、Hello Worldしてみましょうー。
まずはsample.pyとして以下のように記述します。
from fastapi import FastAPI app = FastAPI() @app.get("/") async def hello(): return {"message": "Hello World"}
そして以下のコマンドでサーバを起動。
uvicorn sample:app --reload
すると
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
こんなメッセージが出るはずなのでアクセス!
jsonが表示されていればOKです。
サーバ起動のコマンドにて、sample:appとなっている部分は
ファイル名: FastAPIのインスタンス変数名
となります。
起動させるまでが非常に簡単ですねー。
また、http://127.0.0.1:8000/docsにアクセスすると。。。
swaggerが自動生成されており、それを確認することができます。
↓ こんな感じです。いいですねー。
次回
FastAPIの基本的な使い方を1回で全部書くと
すごい量になりそうだったので分けようかなーと思いました。
ということで、次回はGet、Postにおける、
URLパラメータやrequest、responseのモデル定義方法、
validationの方法について書こうかなと思います。
それでは!!!
20代前半までは東京で音楽をやりながら両手の指以上の業種でアルバイト生活をしていましたが、某大手プロバイダのテレアポのバイトでPCの知識の無さに愕然とし、コンピュータをもっと知りたい!と思ったことをきっかけに25歳の時にITの世界に未経験で飛び込みました。
紆余曲折を経て、現在は個人事業主としてお仕事させていただいており、10年ほどになります。
web制作から企業システム構築、ツール開発など、フロントエンドもバックエンドもサーバーもDBAも依頼があれば何でもやってきた雑食系エンジニアです。
今風にいうとフルスタックエンジニアということになるのでしょうか??
→ 詳細プロフィールというか、生い立ちはこちら
→スキルシートをご覧になる場合はこちら
→お仕事のご依頼やお見積りなどお問い合わせはこちらから!