GithubHelp home page GithubHelp logo

rsbmk / users-games Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 839 KB

microservices practices with message brokers

JavaScript 2.08% Dockerfile 1.84% TypeScript 96.08%
docker docker-compose expressjs nodejs redis typescript

users-games's Introduction

Gateway - Users/Games API's

Contenido

Introducción

En este proyecto se realiza una práctica de microservicios utilizando NodeJs, Redis, MySql y SQL Lite. Se presenta un sistema de gestión de juegos y usuarios, donde tres microservicios independientes se comunican eficientemente a través de un message broker.

El tercer microservicio es un gateway que se encarga de recibir las peticiones de los clientes y redirigirlas a los microservicios correspondientes. Pero sirve como autenticador de usuarios, para que los microservicios de juegos y usuarios no tengan que preocuparse por la autenticación de los usuarios.

Este API Gateway se encarga de validar el token de acceso enviado por el cliente, y si es válido, extrae el id del usuario y lo envía en el header de la petición al microservicio correspondiente.

Users-Games

Estructura del Proyecto

El proyecto consta de dos microservicios:

  1. Games:
    • CRUD para poder gestionar los juegos.
    • Base de datos SQL Lite para almacenar información de juegos.

Ejemplo de mensaje enviado por el microservicio de juegos al microservicio de usuarios:

Games

  1. User:
    • CURD para poder gestionar los usuarios.
    • Base de datos SQL Lite separada para almacenar información de usuarios.

Ejemplo de mensaje enviado por el microservicio de usuarios al microservicio de juegos:

Users

La arquitectura del código sigue un enfoque de capas para mantener un código limpio y organizado.

Cómo Usar

Para inicializar el proyecto solo es necesario tener docker y configurar las env en ambos servios.

En el archivo .env.example estan las variables de entorno que se deben configurar para cada servicio. Y los valores que deben tener.

# .env.example
PORT=3000
NODE_ENV=development
DATABASE_URL="file:./dev.db"
REDIS_HOST=redis.users-games.orb.local

Una vez configuradas las variables de entorno, se debe renombrar el archivo .env.example a .env y ejecutar el siguiente comando:

# Levantar los contenedores
$ docker-compose up -d

Con esto, los microservicios estarán disponibles en los siguientes puertos:

Endpoints

En el archivo Insomnia_endpoints.json se encuentran los endpoints disponibles para cada microservicio, listos para importar en Insomnia.

users-games's People

Watchers

Roberto Bocio Melo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.