Para este proyecto se desarrollo una API con el uso de express como parte de las actividades del curso de Node JS de LaunchX.
El objetivo es crear una API que consulte una db en formato JSON de los estudiantes de Visual Partner-Ship que cumpla con los siguiente:
- 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.
- Jest (26.0.0)
- Linter
- Express
- Pruebas automatizadas con Github Actions
La estructura del proyecto es la siguiente:
graph TD;
Reader-->StudentService;
StudentService-->StudentController
Reader-->StudentController
StudentController-->Server
La parte del proyecto que tendrá contacto con el server será el StudentController que se encargará de implementar la lógica necesaria para cumplir los quererimentos con ayuda del StudentService y el Reader del archivo JSON.
Clases y métodos utilizados en el proyecto:
classDiagram
class Reader
Reader : +readJsonFile(filePath)
classDiagram
class StudentService
StudentService : +getEmailsByCertification(students)
StudentService : +getStudentsByMinimunCredits(students,minimumCredits)
classDiagram
class StudentController
StudentController : +getStudents()
StudentController: +getStudentEmailsIfCertification()
StudentController: +getStudentsByMinimumCredits(minimumCredits)
Los endpoints habilitados en server.js
para el proyecto funcionan de la siguiente manera:
Endpoint | Request | Response |
---|---|---|
localhost:3000//v1/students |
localhost:3000//v1/students |
Obtiene la lista de los estudiantes y sus campos. |
localhost:3000/v1/students/haveCertification |
localhost:3000/v1/students/haveCertification |
Obtiene la lista de emails de estudiantes que tengan certificación |
localhost:3000/v1/students/credits/:number |
localhost:3000/v1/students/credits/500 |
Obtiene la lista de estudiantes con créditos mayores a 500 |