FastAPI入門1
2025年10月14日(火)
FastAPI 公式の入門とチュートリアルをやります。
https://fastapi.tiangolo.com/ja/learn/
Python は、簡単な自動化向けのコードしか書いたことがなく、FastAPI は触ったことがありません。
以下は、アウトプット用の学習メモで、コードは上記リンク先のこちらから引用したものです。
型ヒント
型ヒント = Python において、変数の型を宣言することができる構文。(Python 3.6 以降でサポート)
↓のように利用する。(first_name: str が型ヒント部分)
def get_full_name(first_name: str, last_name: str):
full_name = first_name.title() + " " + last_name.title()
return full_name
print(get_full_name("john", "doe"))
型の宣言
Python の標準的な型すべてが利用可能。(int, float, bool, bytes など)
ジェネリック型
dict、list、set、tuple のような他の値を含むことができるような型を宣言するには、typing を使用する。
from typing import List
def process_items(items: List[str]):
for item in items:
print(item)
上の例だと、List[str] の str のような内部の型を「型パラメータ」と呼ぶ。
Tuple や Set も同様に、typing を利用して行う。
from typing import Set, Tuple
def process_items(items_t: Tuple[int, int, str], items_s: Set[bytes]):
return items_t, items_s
Dict では、カンマ区切りで2つの型パラメータを渡す。
以下の例だと、dict のキーは str 型、値は float 型となる。
from typing import Dict
def process_items(prices: Dict[str, float]):
for item_name, item_price in prices.items():
print(item_name)
print(item_price)
オプションとして、 Optional を使用することで、None を許容する型を宣言できる。
from typing import Optional
def say_hi(name: Optional[str] = None):
if name is not None:
print(f"Hey {name}!")
else:
print("Hello World")
List、Tuple、Set、Dict、Optional などのように、角括弧で型パラメータを取る型を「ジェネリック型」または「ジェネリクス」と呼ぶ。
型としてのクラス
変数の型としてクラスを宣言できる。
class Person:
def __init__(self, name: str):
self.name = name
def get_person_name(one_person: Person):
return one_person.name
Pydantic
Pydantic とは、データ検証を行うための Python ライブラリ。
FastAPI は、すべて Pydantic をベースにしている。
Pydantic については、以下の Qiita の記事がわかりやすい。
Pydantic入門 – Pythonでシンプルかつ強力なバリデーションを始めよう
FastAPIにおける型ヒント
FastAPI で型ヒントを使って型宣言を行うと、以下を行う。
- 要件の定義
- データの変換
- データの検証
- OpenAPIを使用したAPI
なんとなく何をしてくれそうなのか言わんとすることはわかるけど、ちょっと使ってみないとピンとこないかも。
まとめ
Python を忌避していたこともあり、復習も兼ねてめちゃくちゃ基礎的なところだけになってしまいましたが、一旦、次からは実際にFastAPIを使って何か作ろうかなと思います。
その前に、AWSの資格再認定試験がもうすぐだから、それ関連で何かしら書くかも。(多分、書かない)
技術系の記事も、こんな感じで緩く書いていきます。