users-service
Tecnologías:
Prerequisitos:
Test y coverage
Pasos:
-
Ir al folder root del repositorio
-
Ejecutar los comandos
> go test -coverprofile="coverage.out" -covermode=atomic ./src/domain/...
> go install gitlab.com/fgmarand/gocoverstats@latest
> gocoverstats -v -f coverage.out -percent > coverage_rates.out
- Se generará el file coverage.out el cual contedrá el info del coverage del folder ./src/domain, y
overage_rates.out que contendrá los porcentajes dicho coverages.
Nota: En la construcción de la imagen, se realiza la ejecucion de test y la generacion del coverage.
Los archivos de coverage son almacenados dentro del container en la carpeta "/app". Es decir, que encontraremos:
- /app/coverage.out
- /app/coverage_rates.out
Dichos archivos se pueden acceder desde un volume vinculado o sino ejecutando bash dentro del container los comando que se menciono anteriormente.
Swagger
Instalar swag localmente (se necesita go 1.20 or up)
go install github.com/swaggo/swag/cmd/swag@v1.8.10
Para actualizar la api doc de swagger, ejecutar en el folder root del repo:
swag init -g src/infrastructure/api/app.go
Luego de levantar la api e ir al endpoint:
http://localhost:<port>/docs/index.html
Inicialización y ejecución del proyecto (docker)
Pasos:
-
Ir a la carpeta root del repositorio
-
Construir el Dockerfile (imagen) del servicio
docker build -t users-service .
- Ejecutar la imagen construida
Importante: Se requiere configurar env var "MONGO_URI" dentro de ./resources/local.env con "mongodb+srv://<user>:<password>@cluster0.80ymcdr.mongodb.net/<database>?retryWrites=true&w=majority"
database = "arq-soft-2-meli"
collections:
- "counters" (objeto que cuenta con la info de los ids a consumir)
- "customers"
- "sellers"
Nota: Pedir credenciales por privado.
Tambien, si se desea se puede cambiar las envs por otras de las que estan. Se recomienda utilizar el mismo puerto externo e interno para que funcione correctamente swagger.
docker run -p <port>:8081 --env-file ./resources/local.env --name users-service users-service
Nota: agregar "-d" si se quiere ejecutar como deamon
docker run -d -p <port>:8081 --env-file ./resources/local.env --name users-service users-service
Ejemplo:
docker run -d -p 8081:8081 --env-file ./resources/local.env --name users-service users-service
- En un browser, abrir swagger del servicio en el siguiente url:
http://localhost:<port>/docs/index.html
Segun el ejemplo:
http://localhost:8081/docs/index.html
-
Probar el endpoint health check y debe retornar ok
-
La API esta disponible para ser utilizada