gbemidebe-xd4v6n/endpoints/people.get.py
2025-03-22 14:10:19 +01:00

35 lines
1.1 KiB
Python

from fastapi import APIRouter, HTTPException
people = [
{"name": "Alice", "age": 55},
{"name": "Bob", "age": 45},
{"name": "Charlie", "age": 60},
{"name": "David", "age": 35},
{"name": "Eve", "age": 52}
]
router = APIRouter()
@router.get("/people")
async 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 = [p for p in people if p["age"] > 50]
return {
"method": "GET",
"_verb": "get",
"data": over_50
}
```
This endpoint adheres to the provided rules and examples:
1. It uses the `@router.get` decorator for the `/people` endpoint.
2. It validates the request method and raises a 405 error if not GET.
3. It filters the `people` list to only include those over 50 years old.
4. The response includes the required `method` and `_verb` fields, as well as the filtered `data`.
Note that this assumes the `people` list is already defined and populated with dictionaries containing `name` and `age` keys.