パスパラメータで「商品情報」を取得するAPI

パラメータを受け取って商品情報を返すAPIを作成します

ポイントは次の2つです。


1. データ用ファイルを作成する

プロジェクト直下に data フォルダを作り、その中に products.py を作成してください。

data/products.py

# data/products.py

# 今回は「DBの代わり」に Python の辞書でデータを保持します
PRODUCTS = {
    1: {"id": 1, "name": "Apple", "price": 120, "stock": 30},
    2: {"id": 2, "name": "Banana", "price": 80, "stock": 12},
    3: {"id": 3, "name": "Orange", "price": 150, "stock": 0},
}

def get_product(product_id: int):
    return PRODUCTS.get(product_id)

def list_products():
    return list(PRODUCTS.values())

2. main.py にAPIを追加する

main.py から、先ほど作った data/products.py を読み込みます。

main.py

from fastapi import FastAPI, HTTPException
from data.products import get_product

app = FastAPI()

@app.get("/products/{product_id}")
def read_product(product_id: int):
    product = get_product(product_id)
    if product is None:
        raise HTTPException(status_code=404, detail="Product not found")
    return product

コードの解説


動作確認