Giter VIP home page Giter VIP logo

cursos-de-visual-thinking-api's Introduction

API de cursos de Visual Thinking

Requerimientos:

  1. Habilitar un endpoint para consultar todos los estudiantes con todos sus campos.
  2. Habilitar un endpoint para consultar los emails de todos los estudiantes que tengan certificación haveCertification.
  3. Habilitar un endpoint para consultar todos los estudiantes que tengan credits mayor a 500.

Dependencias

El archivo .gitignore hace que no se versione la carpeta node_modules, la cual es generada al instalar alguna dependencia.

1.- Jest

Esta dependencia es usada para crear las pruebas de unidad. Se instaló mediante el siguiente comando:

npm install [email protected] --save

Para automatizar las pruebas se agregó el siguiente script en el package.json:

"test": "jest"

Con ello basta con ejecutar:

npm run test

para correr todas las pruebas de unidad.

2.- Express

Esta dependencia es usada para crear el servidor para la API. Se instaló mediante el siguiente comando:

npm install express --save

Para automatizar el inicio del servidor se agregó el siguiente script en el package.json:

"server": "node ./lib/server.js"

Con ello basta con ejecutar:

npm run server

para que el servidor se inicie.

2.- Linter

Esta dependencia es usada para ayudarnos a cuidar la legibilidad en nuestro código. Para instalar ESLint se ejecutó el siguiente comando:

npm install eslint --save-dev

Se ejecutó el siguiente comando para generar la configuración del linter:

npm init @eslint/config

Terminado esto se crea el archivo .eslintrc.js, en donde se agregaron las siguientes "rules" para decirle al Linter que aspectos revise en nuestros archivos:

indent: ["error", 4],
"linebreak-style": ["error", "unix"],
quotes: ["error", "double"],
semi: ["error", "always"]

También se agregó la siguiente línea en "env":

"jest": true

Para automatizar los comandos de eslint se agregan los siguientes "scripts" en el package.json:

"linter": "node ./node_modules/eslint/bin/eslint.js .",
"linter-fix": "node ./node_modules/eslint/bin/eslint.js . --fix"

Después de ello se puede ejecutar:

npm run linter

para que el linter se ejecute y muestre todas las inconsistencias de escritura.

El Linter arregla todos estos detalles por ti. Ejecutando el comando:

npm run linter-fix

tus archivos ahora quedarán con el mejor formato.

Diagrama de clases

classDiagram
      Reader --> StudentController
      StudentService --> StudentController
      StudentController --> Server
      class StudentController{
          static getAllStudents()
          static getStudentsEmailsWithCertification()
          static getStudentsWithCreditsOver500()
      }
      class StudentService{
          static getStudentsEmailsWithCertification(students)
          static getStudentsWithCreditsOver500(students)
      }
      class Server{
          endpoints
      }

      class  Reader{
          static readJsonFile(path)
      }
Loading

Reader

Método Parámetros Función
static readJsonFile() path: ruta del archivo Leer el archivo visualpartners.json

StudentService

Método Parámetros Función
static getStudentsEmailsWithCertification() students: datos provenientes de visualpartners.json Obtener todos los estudiantes que tengan la certificación haveCertification.
static getStudentsWithCreditsOver500() students: datos provenientes de visualpartners.json Obtener todos los estudiantes que tengan credits mayor a 500.

StudentController

Método Parámetros Función
static getAllStudents() Obtener todos los estudiantes con todos sus campos por medio de la clase Reader.js.
static getStudentsEmailsWithCertification() Obtener todos los estudiantes que tengan la certificación haveCertification por medio de la clase StudentService y el método anterior.
static getStudentsWithCreditsOver500() Obtener todos los estudiantes que tengan credits mayor a 500 por medio de la clase StudentService y el primer método.

Esta clase es la que conecta a las dos anteriores con el servidor server.js, y de esta manera solo se mandaría a llamar a estos tres métodos en el servidor para la API, comunicándose directamente con esta clase e indirectamente con las dos anteriormente mencionadas.

API

Endpoint Request Response
localhost:3000/ localhost:3000/ Mensaje de bienvenida al API de cursos de Visual Thinking.
localhost:3000/v1/students localhost:3000/v1/students Lista de todos los estudiantes con todos sus campos.
localhost:3000/v1/students/emails localhost:3000/v1/students/emails Lista de los emails de todos los estudiantes que tienen certificación haveCertification.
localhost:3000/v1/students/credits localhost:3000/v1/students/credits Lista de todos los estudiantes que tienen credits mayor a 500.

Pruebas de los endpoints

Para abrir el servidor basta con ejecutar el comando:

npm run server

Y acceder al URL del edpoint que se desee obtener respuesta. A continuación se muestran los resultados de cada edpoint mencionado en la tabla anterior.

  • endpoint0

  • endpoint1

  • endpoint2

  • endpoint3

cursos-de-visual-thinking-api's People

Contributors

eduardomorales98 avatar

Watchers

 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.