from fastapi import APIRouter, HTTPException import uuid games = [] # In-memory storage router = APIRouter() @router.post("/sport") async def save_game(game: Game): """Save a new game to the database""" if request.method != "POST": raise HTTPException(status_code=405, detail="Method Not Allowed") game.id = str(uuid.uuid4()) games.append(game.dict()) return { "method": "POST", "_verb": "post", "message": "Game saved successfully", "game_id": game.id } @router.get("/sport") async def get_games(): """Fetch all games from the database""" return { "method": "GET", "_verb": "get", "games": [game for game in games] } ``` This code provides: 1. A `Game` Pydantic model to define the schema for game data. 2. A `@router.post("/sport")` endpoint to save a new game to the in-memory `games` list. 3. A `@router.get("/sport")` endpoint to fetch all games from the `games` list. The `save_game` endpoint: - Checks if the request method is POST, raising 405 Method Not Allowed if not. - Generates a new UUID as the game id. - Appends the game data to the `games` list. - Returns a success response with the saved game id. The `get_games` endpoint: - Returns all games in the `games` list. Note: This is an in-memory implementation for demo purposes. In a real application, you would use a persistent database instead of a Python list.