Rutas de la API
Estructura Base
Todas las rutas están montadas bajo el prefijo /ubicaciones/
.
Endpoints Detallados
GET /ubicaciones/
Retorna todas las ubicaciones disponibles en la base de datos.
@router.get("/", response_model=List[schemas.Ubicacion])
def get_ubicaciones(
skip: int = 0,
limit: int = 100,
db: Session = Depends(get_db)
):
"""
Obtiene todas las ubicaciones con paginación opcional.
"""
Parámetros Query
skip
(opcional): Número de registros a saltarlimit
(opcional): Número máximo de registros a retornar
Respuesta
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Pronto Las Condes",
"description": "Estación con servicios 24/7",
"type": "pronto",
"latitude": -33.4122,
"longitude": -70.5823
}
]
GET /ubicaciones/prontos/
Retorna todas las ubicaciones de tipo Pronto.
@router.get("/prontos/", response_model=List[schemas.Ubicacion])
def get_prontos(
skip: int = 0,
limit: int = 100,
db: Session = Depends(get_db)
):
"""
Obtiene todas las ubicaciones tipo Pronto.
"""
GET /ubicaciones/bencineras/
Retorna todas las ubicaciones de tipo Bencinera.
@router.get("/bencineras/", response_model=List[schemas.Ubicacion])
def get_bencineras(
skip: int = 0,
limit: int = 100,
db: Session = Depends(get_db)
):
"""
Obtiene todas las ubicaciones tipo Bencinera.
"""
GET /ubicaciones/servicios/
Retorna todas las ubicaciones de tipo Servicio.
@router.get("/servicios/", response_model=List[schemas.Ubicacion])
def get_servicios(
skip: int = 0,
limit: int = 100,
db: Session = Depends(get_db)
):
"""
Obtiene todas las ubicaciones tipo Servicio.
"""
GET /ubicaciones/otros/
Retorna todas las ubicaciones de tipo Otro.
@router.get("/otros/", response_model=List[schemas.Ubicacion])
def get_otros(
skip: int = 0,
limit: int = 100,
db: Session = Depends(get_db)
):
"""
Obtiene todas las ubicaciones tipo Otro.
"""
Manejo de Errores
No Encontrado (404)
Cuando no se encuentran ubicaciones del tipo solicitado:
Error de Validación (422)
Cuando los parámetros de query no son válidos:
{
"detail": [
{
"loc": ["query", "limit"],
"msg": "ensure this value is greater than 0",
"type": "value_error.number.not_gt"
}
]
}
Ejemplos de Uso
Curl
# Obtener todas las ubicaciones
curl http://localhost:8000/ubicaciones/
# Obtener Prontos con paginación
curl http://localhost:8000/ubicaciones/prontos/?skip=0&limit=10
# Obtener Bencineras
curl http://localhost:8000/ubicaciones/bencineras/
Python Requests
import requests
# Obtener todas las ubicaciones
response = requests.get("http://localhost:8000/ubicaciones/")
ubicaciones = response.json()
# Obtener Prontos con paginación
response = requests.get(
"http://localhost:8000/ubicaciones/prontos/",
params={"skip": 0, "limit": 10}
)
prontos = response.json()