# README
PRUEBA TÉCNICA PARA LA EMPRESA KUASAR
CRUD, REST API, TESTING, BASE DE DATOS
EL PRESENTE PROYECTO TUVO COMO FINALIDAD IMPLEMENTAR UN API REST QUE EXPUSIERA ENDPOINTS CRUD PARA LA GESTIÓN DE PRODUCTOS.
REQUISITOS
- TENER INSTALADO GOLANG
TECNOLOGÍAS
- LENGUAJE: GOLANG
- FRAMEWORK: GIN
- BASE DE DATOS: SQLITE
- PRUEBAS UNITARIAS: REALIZADAS CON GINKGO Y GOMEGA
COMANDOS DE EJECUCIÓN
EJECUTAR PROYECTO
go run main.go
EJECUTAR PRUEBAS UNITARIAS
ginkgo -r --randomizeAllSpecs
ENDPOINTS
LOS ENDPOINTS PRESENTADOS A CONTINUACIÓN FUERÓN PROBADOS EN POSTMAN. DESCARGALOS AQUI
- [POST] CREAR UN PRODUCTO:
localhost:9098/api/products
- [GET] OBTENER LISTA DE PRODUCTOS:
localhost:9098/api/products
- [GET] OBTENER UN PRODUCTO:
localhost:9098/api/products/id_producto
- [PUT] ACTUALIZAR UN PRODUCTO:
localhost:9098/api/products/id_producto
- [DELETE] ELIMINAR UN PRODUCTO:
localhost:9098/api/products/id_producto
- [GET] OBTENER DATA DE JSON VOLUMES:
localhost:9098/api/volumes
// EJEMPLO DEL FORMATO EN QUE DEBE SER ENVIADO EL PRODUCTO (APLICA PARA METODO POST Y PUT)
{
"id": "123",
"Name": "LAPTOP",
"Description": "RYZEN 5, 8 GB RAM, 500 GB SSD",
"Status": "Ready",
"Account_id": "9c42b90c-70fa-4909-858f-da7c73df6e36",
"Format_product": "PORTABLE",
"Value_unit": 2000000.00,
"Unit_name": "EXAMPLE UNIT NAME",
"Unit_description": "EXAMPLE UNIT DESCRIPTION",
"Stock": 50
}
AUTENTICACIÓN
EL METODO PARA OBTENER LA DATA DEL JSON VOLUMEN REQUIERE DE AUTENTICACIÓN BASICA, POR LO TANTO PARA REALIZAR LA PETICIÓN SE DEBE ENVIAR CON UN USAURIO Y CONTRASEÑA VALIDOS, LOS CUALES SERAN OBTENIDO DE UN ARCHIVO JSON ESTATICO users.json
, EL CUAL CONTIENE LA SIGUIENTE LISTA DE USUARIOS. CUALQUIERA DE ESTOS TE PERMITIRÁ REALIZAR LA PETICIÓN Y OBTENER LA DATA DEL ARCHIVO volumen_list.json
{
"admin": "123",
"admin2": "456",
"admin3": "789"
}
BUENAS PRÁCTICAS
ES IMPORTANTE TENER EN CUENTA LAS BUENAS PRACTICAS AL MOMENTO DE LA CODIFICACIÓN, A CONTINUACIÓN UNA LISTA DE LAS BUENAS PRÁCTICAS QUE SE TUVIERON EN CUENTA MIENTRAS SE REALIZABA EL PROYECTO.
-
TESTEAR EL CÓDIGO: PARA ESTO SE IMPLEMENTARÓN PRUEBAS UNITARIAS UTILIZANDO GINKGO Y GOMEGA, Y ASÍ COMPROBAR QUE LOS METODOS IMPLEMENTADOS PARA MONTAR LA API FUNCIONAN CORRECTAMENTE, EVITAR POSIBLES BUGS Y CUALQUIER TIPO DE FALLO EN NUESTRA APLICACIÓN.
-
DOCUMENTAR EL CÓDIGO: ESTO ES MUY IMPORTANTE YA QUE ASÍ SE DA A CONOCER SUFICIENTE INFORMACIÓN COMO PARA EXPLICAR LO QUE HACE CADA METODO DEL PROYETCO. ESTO LE SERÁ MUY ÚTIL A ALGUIEN QUE DESEE CONOCER LA ESTRUCTURA Y FUNCIONALIDAD DEL PROYECTO.
-
MANEJO DE ERRORES: SE REALIZARÓN VALIDACIONES A LA HORA DE CONSUMIR LOS SERVICIOS Y SE CONTROLARÓN LOS POSIBLES ERRORES.
-
ARQUITECTURA DEL PROYECTO: EL PROYECTO CUENTA CON ARQUITECTURAS LIMPIAS, SEPARACIÓN DE CAPAS Y BUENAS PRACTICAS EN EL DISEÑO DE API REST.