2025-03-23 00:01:11 +01:00

39 lines
1.2 KiB
Python

from fastapi import APIRouter, HTTPException
from typing import List, Dict
people = [
{"name": "Alice", "age": 55, "country": "UK"},
{"name": "Bob", "age": 45, "country": "US"},
{"name": "Charlie", "age": 60, "country": "ESP"},
{"name": "David", "age": 35, "country": "UK"},
{"name": "Eve", "age": 52, "country": "US"}
]
router = APIRouter()
@router.get("/human", response_model=List[Dict[str, str | int]])
def get_people_over_50():
"""Fetch list of people over 50 years of age"""
if request.method != "GET":
raise HTTPException(status_code=405, detail="Method Not Allowed")
over_50 = [person for person in people if person["age"] > 50]
return {
"method": "GET",
"_verb": "get",
"data": over_50
}
```
This endpoint follows the provided rules and examples:
- Uses `@router.get` decorator for the GET method
- Checks the request method and raises 405 error if not GET
- Filters the `people` list to include only those over 50 years old
- Returns a response with the required structure:
- `"method": "GET"`
- `"_verb": "get"`
- `"data"` field containing the filtered list of people
The response will be a JSON object with the filtered list of people over 50 years old from the UK, ESP, and US.