GraphQL / Python FastAPI

FastAPIが「WEB+DB PRESS」の最終号で特集されているのを見て、試してみることにしました。
Flaskについて試したばかりですが、ここで使われているWSGIにかわるASGIというものがFastAPIでは使われているようです。

Flask & uWSGI Server


「WEB+DB PRESS」の記事で、「WSGIの精神を引き継ぎながら非同期処理に対応したASGI」「WSGIと同じ目的をもちつつ非同期処理を活用してより複雑なプロトコルに対応したASGI」とあるように、非同期処理について強化されていることがわかります。
個人的にはサーバサイドのテクノロジーはGoが進んでいた感じをもっていましたが、Pythonもでおくれていないという印象をもちました。

参考) https://aiacademy.jp/media/?p=988

インストール

pip3 install fastapi uvicorn

※ERROR: streamlit 1.12.0 requires gitpython!=3.1.19, which is not installed. がでたがそのままにした。

demo.py

まずは簡単な動作確認でした。
次にGraphQLを使った興味深い実装を見つけましたので、参考にさせていただきました。

https://zenn.dev/nameless_sn/articles/gql_fastapi_tutorial

GraphQLは下記でも以前使ったことがありますが、RESTに比べて表現できることが多いので、一つのエンドポイントでもたくさんの機能が実装できそうです。
http://bitlife.me/bc/2023/01/04/

インストール

pip3 install sqlalchemy strawberry-graphql

複数のレコードをクエリ結果として表示させたかったため、リストを登録してみました。
main.py

またここから掘り下げていきたいです。