Requisitos Go 1.19 o superior instalado en tu sistema.
Clona este repositorio en tu máquina local:
git clone https://github.com/hug58/users-api.git
Navega hasta el directorio del proyecto:
cd users-api
Instala las dependencias del proyecto:
go mod tidy
crea un archivo .env y configura la db
export PGHOST="localhost"
export PGPORT=5432
export PGDATABASE="postgres"
export PGUSER="postgres"
export PGPASSWORD="postgres"
export SECRET="SUPERSECRET!"
export TOKEN_EXPIRATION_MINUTES="5m"
carga las variables de entorno
source .env
go run main.go
en el ejecutable sh add_cronjob.sh esta configurado para ejecutar cada minuto un cronjob que elimine los tokens antiguos y cambie el status del usuario a false
#cambiar en el archivo de configuración
#-d <nombre_de_base_de_datos>
#-U <nombre_de_usuario>
echo "* * * * * psql -c 'SELECT delete_expired_tokens();' -d postgres -U postgres" | crontab -
Una vez que el servidor esté en funcionamiento, puedes acceder a la API REST a través de http://localhost:8080. A continuación, se muestran algunos ejemplos de rutas disponibles:
- POST api/v1/users/login
{
"phone":"+580000000",
"password":"Gugosss"
}
-
GET api/v1/users: Obtiene todos los usuarios.
-
GET api/v1/users/{id}: Obtiene un usuario específico por su ID.
-
POST api/v1/users: Crea un nuevo usuario:
{
"name":"test",
"addres":"casa de hugo",
"email":"dosss@gmail.com",
"phone":"+580000000",
"password":"Gugosss"
}
- PUT api/v1/users/{id}: Actualiza un usuario existente por su ID.
{
"name":"test",
"addres":"casa de hugo",
"email":"dosss@gmail.com",
"phone":"+580000000",
"password":"Gugosss"
}
- DELETE api/v1/users/{id}: Elimina un usuario por su ID.