Plantilla de microservicio
En este repositorio se encuentran la estructura de carpetas y todos los archivos de configuración para un microservicio en Node.
Estructura del proyecto
├── ci
├── deploy
│ ├── scripts
│ │ ├── **/*.sh
│ ├── terraform
│ ├── main.tf
│ ├── microservice.yaml
├── dist
├── node_modules
├── docs
│ ├── **/*.yaml
├── src
│ ├── application
│ │ ├── infrastructure-interfaces
│ │ ├── models
│ │ ├── services
│ ├── domain
│ │ ├── models
│ │ ├── services
│ ├── infrastructure
│ │ ├── api
│ │ │ ├── routers
│ │ ├── api-client (optional)
│ │ │ ├── cm-api (optional)
│ │ │ ├── proveedor-api (optional)
│ │ ├── repositories (optional)
│ │ │ ├── firestore (optional)
│ │ │ ├── datastore (optional)
│ │ │ ├── postgres (optional)
│ │ │ ├── big-query (optional)
│ │ ├── pubsub (optional)
│ ├── setup
│ │ ├── dependencies
│ │ │ ├── DependencyContainer.ts
│ │ ├── Swagger.ts
│ ├── util (optional)
├── test
│ │ ├── module
│ │ │ ├── features
│ │ │ ├── steps-definitions
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gcloudignore
├── .gitignore
├── .prettiertc.js
├── .analyze.config.js
├── CHANGELOG.md
├── commitlint.config.js
├── jest.config.js
├── package.json
├── tsconfig.build.json
└── tsconfig.json
Recomendaciones
-
## Editor
Se recomienda utilizar [VS Code](https://code.visualstudio.com/)
-
## Extensiones recomendadas
- Prettier - Code formatter - npm - npm Intellisense - Jest-cucumber code generator - Javascript (ES6) code snippets - GitLens - ESLint - EditorConfig - TypeScript Hero - Path Intellinsense
-
## Gestor de paquetes
El gestor de paquetes utilizado es [Yarn](https://yarnpkg.com/)
Primeros pasos
Se debe tener la versión estable Node.js (LTS) y tener instalado Yarn
Instalación de dependencias
# Consolayarn
Ejecutar el proyecto
Solo tienes que ejecutar el comando yarn dev
y dirigirse a un navegador con la url http://localhost:8080/api/v1 o http://localhost:8080/docs
Validar versionamiento de las dependencias
# Consolayarn outdated
Si no hay ningún warning ni error entonces puede continuar con los pasos, si por lo contrario los tiene por favor comunicarse con el Arquitecto
Copiar la estructura del proyecto en el directorio deseado
# Consola -> Ir a la ruta donde se encuentre la plantillacp -R ./ destination_folder
Scripts
build
# Se utiliza para compilar el proyectoyarn build
infra-as-code
# Se utiliza generar los recursos de infraestructura en GCPyarn infra-as-code
lint
# Se corre el linteryarn lint
format
# Se utiliza para formatear el códigoyarn format
format-check
# Se utiliza para verificar el formato del códigoyarn format-check
dev
# Se utiliza para correr el servidor y estar atento a los cambios en los archivos Typescriptyarn dev
start
# Se utiliza para correr el servidoryarn start
start:debug
# Se utiliza para correr el servidor en modo debugyarn start:debug
test
# Se utiliza para ejecutar los testsyarn test
coverage
# Se utiliza para mostrar la cobertura de pruebasyarn coverage
gcloud-ignore
# Se utiliza para habilitar o deshabilitar el archivo .gcloudignore. Ver enable:gcloud-ignore y disable:gcloud-ignoreyarn gcloud-ignore
deploy
# Se utiliza para desplegar en App Engineyarn deploy
release
# Se utiliza cada vez que se va a desplegar una versión CHANGELOG.mdyarn release
pre-commit
# Se utiliza para validar antes de hacer un commityarn pre-commit
pre-push
# Se utiliza para validar antes de hacer un pushyarn pre-push
Commit lint
Se utiliza la convención estandar para escribir el mensaje en el commit
Ver commit-message.png