Skip to content

sebsolezzi88/fastapi-api-dinos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦕 Dinosaur API

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.


🛠️ Tecnologías


📁 Estructura del proyecto

├── 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)

⚙️ Instalación

  1. Clonar el repositorio
git clone https://github.com/sebsolezzi88/fastapi-api-dinos.git
cd dinosaur-api
  1. Crear y activar un entorno virtual
python -m venv venv
source venv/bin/activate        # Linux / macOS
venv\Scripts\activate           # Windows
  1. Instalar dependencias
pip install fastapi sqlmodel uvicorn
  1. Importar los datos del CSV
python seed.py
  1. Levantar el servidor
uvicorn main:app --reload

La API estará disponible en http://localhost:8000.

Documentación interactiva en http://localhost:8000/docs.


🧩 Modelo de datos

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

🔀 Endpoints

GET /

Verifica que el servidor esté corriendo.

Respuesta:

{ "msg": "server corriendo" }

GET /api/v1/dinosaur/all

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

GET /api/v1/dinosaur/name/{name}

Busca un dinosaurio por nombre (case-insensitive).

Ejemplo:

GET /api/v1/dinosaur/name/trex

GET /api/v1/dinosaur/id/{id}

Busca un dinosaurio por su ID.

Ejemplo:

GET /api/v1/dinosaur/id/1

GET /api/v1/dinosaur/diet/{diet}

Retorna todos los dinosaurios con la dieta indicada.

Valores válidos para diet: Herbivore | Carnivore | Omnivore | Granivore | Insectivore | Piscivore


GET /api/v1/dinosaur/region/{region}

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


GET /api/v1/dinosaur/period/{period}

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


📄 Licencia

MIT © Sebastián Solezzi

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages