Saltar a contenido

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.

created_at instance-attribute #

Fecha y hora de registro del animal en formato ISO 8601

id instance-attribute #

Identificador único del animal en la base de datos

Config #

Configuración adicional para el modelo AnimalResponse.

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.