/Microservice_Cisco_Devices_GraphQL

Microservice for managing Cisco devices implemented with GraphQL, Express, Apollo, NestJS, Typescript, NodeJS, TypeORM, dotenv, cors, swagger, swagger-ui, MySQL, others.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Index app

Microservicio_Cisco_Devices_GraphQL

Microservicio para el manejo de dispositivos cisco implementado con GraphQL, Express, Apollo, NestJS, Typescript, NodeJS, TypeORM, Dotenv, Cors, Swagger, Swagger-ui, MySQL, Otros.


Índice 📜

Ver

Sección 1) Descripción, configuración y tecnologías.

Sección 2) Endpoints y Ejemplos

Sección 3) Prueba de funcionalidad y Referencias



Sección 1) Descripción, configuración y tecnologías.

1.0) Descripción 🔝

Ver

1.0.0) Descripción General

1.0.1) Descripción Arquitectura y Funcionamiento


1.1) Ejecución del Proyecto 🔝

Ver


1.2) Configuración del proyecto desde cero 🔝

Ver
  • Creamos un entorno de trabajo a través de algún ide, luego de crear una carpeta nos posicionamos sobre la misma
cd 'projectName'
  • Instalamos la última versión LTS de Nodejs(v18)
  • Instalamos NestJS de forma global
npm i -g @nestjs/cli
  • Creamos un proyecto Nest
nest new nombreProyecto
  • Creamos un proyecto Nest
nest new nombreProyecto
  • Crear un nuevo modulo sin test
nest g mo moduleName --no-spec
  • Crear un nuevo servicio sin test
nest g s moduleName --no-spec
  • Crear un nuevo resolver (controlador) sin test
nest g co moduleName --no-spec
  • Podemos automatizar los archivos anteriores con graphql usando un resource( Esto creara entities,services,module, resolvers)
nest g resource resourceName --no-spec
- Seleccionamos los siguientes valores
- ? What transport layer do you use? GraphQL (code first)
- ? Would you like to generate CRUD entry points? Yes
npm i dotenv
  • Instalamos el plugin para TypeORM junto con el controlador de mysql para el mapeo de datos.
npm i @nestjs/typeorm typeorm mysql2
npm i @nestjs/swagger
  • Instalamos el plugin class-validator para validaciones de tipos de datos, propiedades de clases, etc.
npm i class-validator
  • Se resume instalación de plugins para acotar documentación. Para la totalidad de los mismos revisar package.json.
  • Ejecutamos la app desde terminal.
npm run start:dev
  • Entramos a la interfaz de Gaphql por defecto para las peticiones de la Api.
http://localhost:3200/graphql o http://localhost:3300/graphql

1.3) Comandos de utilidad 🔝

Ver
  • Crear un nuevo proyecto NestJs
nest g projectName
  • Crear un nuevo modulo sin test
nest g mo moduleName --no-spec
  • Crear un nuevo servicio sin test
nest g s moduleName --no-spec
  • Crear un nuevo controlador sin test
nest g co moduleName --no-spec
  • Podemos automatizar los archivos anteriores con graphql usando un resource( Esto creara entities,services,module, resolvers)
nest g resource resourceName --no-spec
- Seleccionamos los siguientes valores
- ? What transport layer do you use? GraphQL (code first)
- ? Would you like to generate CRUD entry points? Yes

1.4) Tecnologías 🔝

Ver

| Tecnologías | Versión | Finalidad |
| ------------- | ------------- | ------------- | | NodeJS | 14.18.1 | Librería JS | | NestJS | ^10.0.0 | Framework de NodeJS | | Typescript | 3.8.3 | Lenguaje con alto tipado basado en JS | | TypeORM | ^0.3.17 | ORM | | Mysql | 10.1 | SGDB | | XAMPP | 3.2.2 | Paquete de servidores | | Swagger | ^7.1.2 | Documentación de Api | | VSC | 1.72.2 | IDE | | Postman | 10.11 | Cliente Http | | CMD | 10 | Símbolo del Sistema para linea de comandos | | Git | 2.29.1 | Control de Versiones |


| Extensión |
| ------------- | | Prettier - Code formatter | | Typescript Toolbox - generate setters, getters, constrc, etc | | Otras |



Sección 2) Endpoints y Ejemplos.

2.0) Endpoints y recursos 🔝

Ver

2.1) Ejemplos 🔝

Ver


Sección 3) Prueba de funcionalidad y Referencias.

3.0) Prueba de funcionalidad 🔝

Ver

3.1) Referencias 🔝

Ver

GraphQL Api

@nestjs/graphql

Nestjs

Typeorm

Api example code

OpenApi and Swagger

Librerías