API REST construida con FastAPI y SQLModel para consultar información sobre dinosaurios. Permite filtrar por dieta, período geológico y región de forma case-insensitive.
├── main.py # Aplicación FastAPI y definición de endpoints
├── models.py # Modelo SQLModel (Dinosaur)
├── database.py # Configuración del motor SQLite y sesión
├── query_types.py # Enums para filtros (DietType, PeriodType, RegionType)
├── seed.py # Script para importar datos desde CSV
├── data/
│ └── dinosaurios.csv
└── dinosaur.db # Base de datos generada (auto)
- Clonar el repositorio
git clone https://github.com/sebsolezzi88/fastapi-api-dinos.git
cd dinosaur-api- Crear y activar un entorno virtual
python -m venv venv
source venv/bin/activate # Linux / macOS
venv\Scripts\activate # Windows- Instalar dependencias
pip install fastapi sqlmodel uvicorn- Importar los datos del CSV
python seed.py- Levantar el servidor
uvicorn main:app --reloadLa API estará disponible en http://localhost:8000.
Documentación interactiva en http://localhost:8000/docs.
| Campo | Tipo | Descripción |
|---|---|---|
id |
int | Identificador único (auto) |
name |
string | Nombre del dinosaurio |
period |
string | Período geológico |
diet |
string | Tipo de dieta |
region |
string | Región geográfica |
size |
string | Tamaño |
weight |
string | Peso aproximado |
Verifica que el servidor esté corriendo.
Respuesta:
{ "msg": "server corriendo" }Retorna todos los dinosaurios, con filtros opcionales.
Query params:
| Parámetro | Tipo | Requerido |
|---|---|---|
diet |
DietType |
No |
period |
PeriodType |
No |
region |
RegionType |
No |
Ejemplo:
GET /api/v1/dinosaur/all?diet=Carnivore&period=Late Cretaceous
Busca un dinosaurio por nombre (case-insensitive).
Ejemplo:
GET /api/v1/dinosaur/name/trex
Busca un dinosaurio por su ID.
Ejemplo:
GET /api/v1/dinosaur/id/1
Retorna todos los dinosaurios con la dieta indicada.
Valores válidos para diet:
Herbivore | Carnivore | Omnivore | Granivore | Insectivore | Piscivore
Retorna todos los dinosaurios de una región.
Valores válidos para region:
North America | Central Asia | East Asia | Southern Africa | Southeast Asia | Global Oceans | Europe | Africa
Retorna todos los dinosaurios de un período geológico.
Valores válidos para period:
Early Cretaceous | Late Cretaceous | Late Jurassic | Early Jurassic | Late Triassic | Late Permian
MIT © Sebastián Solezzi