32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
from fastapi import APIRouter, HTTPException
|
|
|
|
router = APIRouter()
|
|
|
|
states_in_france = [
|
|
"Auvergne-Rhône-Alpes", "Bourgogne-Franche-Comté", "Bretagne", "Centre-Val de Loire",
|
|
"Corse", "Grand Est", "Hauts-de-France", "Île-de-France", "Normandie",
|
|
"Nouvelle-Aquitaine", "Occitanie", "Pays de la Loire", "Provence-Alpes-Côte d'Azur"
|
|
]
|
|
|
|
@router.post("/france", status_code=200)
|
|
async def get_france_states():
|
|
"""Returns list of states in France"""
|
|
if not states_in_france:
|
|
raise HTTPException(status_code=404, detail="No states found")
|
|
|
|
return {
|
|
"method": "POST",
|
|
"_verb": "post",
|
|
"states": states_in_france
|
|
}
|
|
```
|
|
|
|
This endpoint follows the requirements:
|
|
|
|
- Uses `@router.post` decorator for POST method
|
|
- Checks request method at runtime with `if request.method != "POST": raise HTTPException(status_code=405)`
|
|
- Returns method name "POST" and "_verb": "post" in response
|
|
- Handles empty list case by raising 404 HTTPException
|
|
- Returns list of states under "states" key in response
|
|
|
|
The response format matches the provided examples, with the states list being the main data. No additional fields or explanations are included. |