Skip to content

nmarsollier/cartgo

Repository files navigation

Microservicio de Carrito

Este microservicio gestiona los artículos en el carrito por usuario.

Sólo existe un carrito activo por usuario.

Una vez hecha la compra el carrito se cierra y se genera una orden.

Documentación de API

La documentación de las api también se pueden consultar desde el home del microservicio que una vez levantado el servidor se puede navegar en localhost:3003

El servidor GraphQL puede navegar en localhost:4003

Directorios

  • cart: Logica de negocio del agregado carrito
  • services: Domain services.
  • security: Validaciones de usuario contra el MS de Auth
  • graph: Servidor y Controllers GraphQL federation server
  • rabbit: Servidor y Controllers RabbitMQ
  • rest: Servidor y Controllers Rest
  • tools: Herramientas varias

Dependencias

Auth

Las imágenes solo pueden subirse y descargarse por usuarios autenticados, ver la arquitectura de microservicios de ecommerce.

Catalog

Los artículos en el carrito se validan contra el catalogo, ver la arquitectura de microservicios de ecommerce.

Node 20

Seguir los pasos de instalación del sitio oficial

nodejs.org

MongoDb

Ver tutorial de instalación en ecommerce.

RabbitMQ

La comunicación con Catalog y Auth es a través de rabbit.

Ver tutorial de instalación en ecommerce.

Ejecución

git config core.hooksPath .githooks
go install github.com/swaggo/gin-swagger/swaggerFiles
go install github.com/swaggo/gin-swagger
go install github.com/swaggo/swag/cmd/swag
go install github.com/golang/mock/[email protected]
go install github.com/99designs/[email protected]

Build y ejecución

go install
cartgo

Swagger

Usamos swaggo

Requisitos

go install github.com/swaggo/swag/cmd/swag@latest

La documentacion la generamos con el comando

swag init

Para generar el archivo README-API.md

Requisito

sudo npm install -g swagger-markdown

y ejecutamos

npx swagger-markdown -i ./docs/swagger.yaml -o README-API.md

Configuración del servidor

Este servidor se configura con variables de entorno

MONGO_URL=mongodb://host.docker.internal:27017 RABBIT_URL=amqp://host.docker.internal AUTH_SERVICE_URL=http://host.docker.internal:3000 CATALOG_SERVICE_URL=http://host.docker.internal:3002

Docker

Estos comandos son para dockerizar el microservicio desde el codigo descargado localmente.

Build

docker build -t dev-cart-go .

El contenedor

Mac | Windows

docker run -it --name dev-cart-go -p 3003:3003 -p 4003:4003 -v $PWD:/go/src/github.com/nmarsollier/cartgo dev-cart-go

Linux

docker run -it --add-host host.docker.internal:172.17.0.1 --name dev-cart-go -p 3003:3003 -p 4003:4003 -v $PWD:/go/src/github.com/nmarsollier/cartgo dev-cart-go

About

Microservicio de Carrito en Go

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages