Routes#
API routes for managing animal registrations.
Routes
GET /animales
: Retrieve the list of all registered animals.POST /animales
: Register a new animal.GET /animales/{animal_id}
: Retrieve details of a specific animal.PUT /animales/{animal_id}
: Update details of a specific animal.DELETE /animales/{animal_id}
: Delete a specific animal registration.
Functions:
Name | Description |
---|---|
- `animals_list` |
Retrieve the list of all registered animals. |
- `create_animal` |
Register a new animal. |
- `get_animal` |
Retrieve details of a specific animal. |
- `update_animal` |
Update details of a specific animal. |
- `delete_animal` |
Delete a specific animal registration. |
Dependencies
- fastapi: FastAPI framework for building APIs.
- pydantic: Data validation and settings management using Python type annotations.
- sqlalchemy: SQL toolkit and Object-Relational Mapping (ORM) library.
- sqlmodel: SQL databases in Python, designed to be compatible with FastAPI.
app.main
: Main application module containing the database session..models
: Module containing the Register model..schemas
: Module containing the response schemas (AnimalResponse
,AnimalUpdate
).
animals_list(db)
#
Obtiene la lista de todos los animales registrados.
Este endpoint devuelve todos los animales registrados en la aplicación sin aplicar ningún filtro.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
db
|
DbSession
|
Sesión de base de datos inyectada por FastAPI. |
required |
Returns:
Type | Description |
---|---|
list[Register]
|
list[Register]: Una lista con todos los registros de animales. |
create_animal(animal, db)
async
#
Registra un nuevo animal en la base de datos.
Este endpoint valida y registra un nuevo animal en la aplicación, asignándole un ID único automáticamente.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal
|
AnimalCreate
|
Los detalles del animal a registrar. |
required |
db
|
DbSession
|
Sesión de base de datos inyectada por FastAPI. |
required |
Returns:
Name | Type | Description |
---|---|---|
AnimalResponse |
AnimalResponse
|
La respuesta que contiene los detalles del animal registrado, incluyendo su ID y fecha de creación. |
delete_animal(animal_id, db)
async
#
Elimina el registro de un animal específico.
Este endpoint elimina permanentemente un registro de animal de la base de datos a partir de su ID.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
El ID del animal a eliminar. |
required |
db
|
DbSession
|
Sesión de base de datos inyectada por FastAPI. |
required |
Raises:
Type | Description |
---|---|
HTTPException
|
Si el animal no se encuentra, se lanza un error 404 Not Found. |
get_animal(animal_id, db)
async
#
Obtiene los detalles de un animal específico.
Este endpoint recupera la información completa de un animal a partir de su ID único.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
El ID del animal a consultar. |
required |
db
|
DbSession
|
Sesión de base de datos inyectada por FastAPI. |
required |
Returns:
Name | Type | Description |
---|---|---|
AnimalResponse |
AnimalResponse
|
La respuesta que contiene los detalles del animal. |
Raises:
Type | Description |
---|---|
HTTPException
|
Si el animal no se encuentra, se lanza un error 404 Not Found. |
update_animal(animal_id, animal_update, db)
async
#
Actualiza los detalles de un animal específico.
Este endpoint permite modificar parcial o totalmente la información de un animal existente a partir de su ID.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
animal_id
|
int
|
El ID del animal a actualizar. |
required |
animal_update
|
AnimalUpdate
|
Los datos actualizados del animal. |
required |
db
|
DbSession
|
Sesión de base de datos inyectada por FastAPI. |
required |
Returns:
Name | Type | Description |
---|---|---|
AnimalResponse |
AnimalResponse
|
La respuesta que contiene los detalles actualizados del animal. |
Raises:
Type | Description |
---|---|
HTTPException
|
Si el animal no se encuentra, se lanza un error 404 Not Found. |
Schemas#
Esquemas de Pydantic para validación de datos de la API de animales.
AnimalBase
#
Bases: BaseModel
Esquema base para un animal.
edad = Field(..., ge=0)
class-attribute
instance-attribute
#
Edad del animal en años (debe ser mayor o igual a 0)
nombre
instance-attribute
#
Nombre del animal (campo obligatorio)
raza
instance-attribute
#
Raza o especie del animal (campo obligatorio)
validate_not_empty(v)
classmethod
#
Valida que los campos de texto no estén vacíos.
AnimalCreate
#
Bases: AnimalBase
Esquema para la creación de un nuevo registro de animal.
Config
#
Configuración adicional para el modelo AnimalCreate.
AnimalResponse
#
Bases: AnimalBase
Esquema para la respuesta de operaciones con animales.
AnimalUpdate
#
Bases: BaseModel
Esquema para actualizar un animal existente.
edad = Field(None, ge=0)
class-attribute
instance-attribute
#
Edad del animal en años (opcional, debe ser mayor o igual a 0 si se proporciona)
nombre = None
class-attribute
instance-attribute
#
Nombre del animal (campo opcional)
raza = None
class-attribute
instance-attribute
#
Raza o especie del animal (campo opcional)
Config
#
Configuración adicional para el modelo AnimalUpdate.
validate_not_empty(v)
classmethod
#
Valida que los campos de texto no estén vacíos si se proporcionan.
Models#
Modelos de base de datos para la API de animales.
Este módulo contiene los modelos SQLModel utilizados para definir la estructura de las tablas en la base de datos para el registro de animales.
Register
#
Bases: SQLModel
Modelo para registrar los animales en la base de datos.
Esta clase define la estructura de la tabla 'animales' en la base de datos, incluyendo todos los campos necesarios para almacenar la información de un animal.
now_utc()
#
Obtiene la fecha y hora actual en UTC.
Esta función se utiliza como valor predeterminado para el campo created_at en los modelos de base de datos.
Returns:
Name | Type | Description |
---|---|---|
datetime |
La fecha y hora actual en formato UTC. |