cat posts/fastapi-%e3%81%a7-api-%e3%82%92%e4%bd%9c%e3%82%8b%e3%81%a8%e9%80%9f%e3%81%84%e3%81%a8%e3%81%84%e3%81%86%e8%a9%b1.md

Python で API 書くなら Flask やろとか言ってたワイ、FastAPI に敗北

1 風吹けば名無し 2026/06/20(土) 21:04:00 ID:Fa5tAp1i
Python で API 書くなら Flask か Django やろと思っとったんやけど、FastAPI 触ったら戻れんくなったわ

2 風吹けば名無し 2026/06/20(土) 21:05:23 ID:Gu8mN4xr
なんで使い始めたんや

3 風吹けば名無し 2026/06/20(土) 21:06:08 ID:Fa5tAp1i
>>2 RAG システムの API 部分作るときや
型ヒント書いたら自動でバリデーション入って Swagger UI まで生成されるんやぞ

4 風吹けば名無し 2026/06/20(土) 21:07:16 ID:Gu8mN4xr
>>3 ほんまか

5 風吹けば名無し 2026/06/20(土) 21:08:47 ID:Fa5tAp1i
これだけや

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Question(BaseModel):
    text: str
    max_results: int = 5

@app.post("/search")
async def search(q: Question):
    results = await vector_search(q.text, q.max_results)
    return {"results": results}

6 風吹けば名無し 2026/06/20(土) 21:09:40 ID:Lc2qW9sd
>>5 短すぎやろ

7 風吹けば名無し 2026/06/20(土) 21:10:56 ID:Fa5tAp1i
>>6 型ヒント書けば Pydantic がバリデーションして OpenAPI ドキュメントが勝手に出てくる
フロントに「どんな API ですか」て聞かれたら Swagger UI の URL 渡すだけで済むわ

8 風吹けば名無し 2026/06/20(土) 21:11:34 ID:Lc2qW9sd
>>7 それが一番ありがたいやつやんけ

9 風吹けば名無し 2026/06/20(土) 21:12:35 ID:Bx6yK3vt
非同期はどうなん

10 風吹けば名無し 2026/06/20(土) 21:13:59 ID:Fa5tAp1i
>>9 async def で書くだけで非同期エンドポイントになる
外部 API 呼び出しや DB クエリが多いとこは体感で差が出るで

11 風吹けば名無し 2026/06/20(土) 21:14:45 ID:Bx6yK3vt
>>10 ええやん

12 風吹けば名無し 2026/06/20(土) 21:15:54 ID:Fa5tAp1i
Python でバックエンド書く機会あったらまず試してみてほしいわ
慣れると他のフレームワークに戻りにくくなるのが唯一の欠点や

13 風吹けば名無し 2026/06/20(土) 21:17:26 ID:Gu8mN4xr
>>12 それ欠点なんか?

14 風吹けば名無し 2026/06/20(土) 21:18:20 ID:Fa5tAp1i
>>13 Flask 案件が来たときに困る