Requerimientos:
- Habilitar un endpoint para consultar todos los estudiantes con todos sus campos.
- Habilitar un endpoint para consultar los emails de todos los estudiantes que tengan certificación haveCertification.
- Habilitar un endpoint para consultar todos los estudiantes que tengan credits mayor a 500.
El archivo .gitignore hace que no se versione la carpeta node_modules, la cual es generada al instalar alguna dependencia.
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.
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.
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.
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)
}
Método | Parámetros | Función |
---|---|---|
static readJsonFile() | path: ruta del archivo | Leer el archivo visualpartners.json |
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. |
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.
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. |
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.