¡Bienvenido a la API de entrega! Esta API es una solución para administrar productos y ventas en su aplicación. Construido con .NET, proporciona una interfaz RESTful para crear y administrar productos y procesar transacciones de ventas. Este documento proporciona una descripción general de los puntos finales de la API de entrega, incluidas descripciones detalladas, parámetros de solicitud y formatos de respuesta. La API incluye puntos finales para controles de salud, gestión de productos y manejo de ventas.
Clon el repositorio:
git clone https://github.com/anthonyvii27/delivery-apiCambiar al directorio de repositorio:
cd delivery-apiEjecute el comando para iniciar el entorno contenedorizado:
make compose-up-v2 La API se ejecutará en el puerto :8080 en su computadora.
Opcionalmente, en la raíz de este repositorio, hay un archivo llamado delivery-api.http que proporciona una interfaz fácil de usar para ejecutar los puntos finales implementados.
GET /healthResumen : verifica el estado de salud de la API.
Respuestas :
200 OK
" Database connection is healthy. "503 Servicio no disponible
" Database connection isn't available. "500 Error del servidor interno
" An error occurred while checking the database connection. "GET /productsResumen : Recupera todos los productos.
Respuestas :
[
{
"id" : 1 ,
"name" : " Product Name " ,
"unitOfMeasurement" : " UN " ,
"price" : 9.99
}
]GET /products/{id}Resumen : Recupera un producto por su identificación.
Parámetros :
id (entero): la identificación del producto para recuperar.Respuestas :
200 OK
{
"id" : 1 ,
"name" : " Product Name " ,
"unitOfMeasurement" : " UN " ,
"price" : 9.99
}404 no encontrado
{
"message" : " Product with ID {id} not found. "
}POST /productsResumen : Crea un nuevo producto.
Solicitud de cuerpo :
{
"name" : " Product Name " ,
"unitOfMeasurement" : " Unit " ,
"price" : 9.99
}Respuestas :
201 creado
{
"id" : 1 ,
"name" : " Product Name " ,
"unitOfMeasurement" : " Unit " ,
"price" : 9.99
}400 mala solicitud
{
"message" : " Validation error messages "
}PUT /products/{id}Resumen : actualiza un producto existente.
Parámetros :
id (Integer): la identificación del producto para actualizar.Solicitud de cuerpo :
{
"name" : " Updated Product Name " ,
"unitOfMeasurement" : " Updated Unit " ,
"price" : 9.99
}Respuestas :
200 OK
{
"id" : 1 ,
"name" : " Updated Product Name " ,
"unitOfMeasurement" : " Updated Unit " ,
"price" : 9.99
}400 mala solicitud
{
"message" : " Validation error messages "
}404 no encontrado
{
"message" : " Product with ID {id} not found. "
}DELETE /products/{id}Resumen : elimina un producto por su identificación.
Parámetros :
id (entero): la identificación del producto para eliminar.Respuestas :
204 Sin contenido
400 mala solicitud
{
"message" : " Error message "
}404 no encontrado
{
"message" : " Product with ID {id} not found. "
}Conflicto 409
{
"message" : " Cannot delete the product as it has associated sale items. "
}GET /salesResumen : Recupera todas las ventas (históricas).
Respuestas :
[
{
"id" : 1 ,
"saleDate" : " 2024-08-14T00:00:00Z " ,
"totalAmount" : 100.00 ,
"saleItems" : [
{
"id" : 1 ,
"productId" : 1 ,
"quantity" : 2 ,
"unitPrice" : 50.00
}
]
}
]GET /sales/{id}Resumen : Recupera una venta por su identificación.
Parámetros :
id (entero): la identificación de la venta para recuperar.Respuestas :
200 OK
{
"id" : 1 ,
"saleDate" : " 2024-08-14T00:00:00Z " ,
"totalAmount" : 100.00 ,
"saleItems" : [
{
"id" : 1 ,
"productId" : 1 ,
"quantity" : 2 ,
"unitPrice" : 50.00
}
]
}404 no encontrado
{
"message" : " Sale with ID {id} not found. "
}POST /salesResumen : Crea una nueva venta.
Solicitud de cuerpo :
{
"saleDate" : " 2024-08-14T00:00:00Z " ,
"zipCode" : " 12345678 " ,
"saleItems" : [
{
"productId" : 1 ,
"quantity" : 2
}
]
}Respuestas :
201 creado
{
"id" : 1 ,
"saleDate" : " 2024-08-14T00:00:00Z " ,
"totalAmount" : 100.00 ,
"saleItems" : [
{
"id" : 1 ,
"productId" : 1 ,
"quantity" : 2 ,
"unitPrice" : 50.00 ,
"product" : {
"id" : 1 ,
"name" : " Product Name " ,
"unitOfMeasurement" : " Unit " ,
"price" : 50.00
}
}
]
}400 mala solicitud
{
"message" : " Validation error messages "
}DELETE /sales/{id}Resumen : eliminar (cancelar) una venta por su identificación.
Parámetros :
id (entero): la identificación de la venta a eliminar.Respuestas :
204 Sin contenido
400 mala solicitud
{
"message" : " Error message "
}404 no encontrado
{
"message" : " Sale with ID {id} not found. "
}