0% encontró este documento útil (0 votos)
17 vistas72 páginas

2-Laboratorio-Codificación de La API REST-NODE Express Mongo

Cargado por

3marin71980
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas72 páginas

2-Laboratorio-Codificación de La API REST-NODE Express Mongo

Cargado por

3marin71980
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 72

Construcción de una

API REST con NodeJS,


Express y MongoDB
Servicio Nacional de Aprendizaje SENA. Regional Distrito Capital. Centro
de Electricidad, Electrónica y Telecomunicaciones
VICTOR C. VLADIMIR CORTES AREVALO 4/13/22 Desarrollo Web Full Stack
Table of Contents
1 TEMA ............................................................................................................................................. 1
2 OBJETIVO GENERAL ................................................................................................................ 1
3 OBJETIVOS ESPECÍFICOS ...................................................................................................... 1
4 HERRAMIENTAS DE SOFTWARE REQUERIDAS ............................................................... 1
5 VALIDACIÓN INICIAL DEL ENTORNO DE DESARROLLO ............................................... 1
6 CREACIÓN DEL REPOSITORIO REMOTO ........................................................................... 1
7 CREACIÓN DEL REPOSITORIO LOCAL ............................................................................... 3
8 CREACIÓN DEL PROYECTO NODEJS ................................................................................. 4
9 INSTALACIÓN Y CONFIGURACIÓN DE PAQUETES COMPLEMENTARIOS DESDE
VISUAL STUDIO CODE ..................................................................................................................... 5
9.1 Sincronización del repositorio local con el repositorio remoto ...................................... 6
9.2 Creación de una rama auxiliar en el repositorio local..................................................... 8
9.3 Instalación del paquete NODEMON.................................................................................. 8
9.4 Registrar nodemon en las dependencias. ........................................................................ 9
9.5 Creación de la rama (Branch) Express ........................................................................... 12
9.6 Instalación de otros paquetes .......................................................................................... 15
10 CODIFICACIÓN DE LA API REST ..................................................................................... 17
10.1 Creación de la rama auxiliar apirest ................................................................................ 17
10.2 Estructuración del proyecto .............................................................................................. 18
10.3 Configuración de la conexión a la base de datos MongoDB ....................................... 18
10.4 Codificación de los controladores .................................................................................... 19
10.5 Endpoints de tipo GET para los recursos Cursos y Usuarios ..................................... 20
10.6 Modelo y esquema para el objeto usuario .................................................................... 24
10.7 Validación del objeto usuario........................................................................................... 24
10.8 Endpoint de tipo POST para el recurso usuarios ........................................................ 25
10.9 Endpoint de tipo PUT para el recurso usuarios ........................................................... 27
10.10 Endpoint de tipo DELETE para el recurso usuarios ............................................... 30
10.11 Endpoint de tipo GET para el recurso usuarios ....................................................... 34
10.12 Modelo y esquema para el objeto curso.................................................................... 37
10.13 Endpoint de tipo POST para el recurso cursos ........................................................ 37
10.14 Endpoint de tipo PUT para el recurso cursos .................................................................... 41
10.15 Endpoint de tipo DELETE para el recurso cursos ................................................... 44
10.16 Endpoint de tipo GET para el recurso cursos........................................................... 47
11 SEPARACIÓN DE LAS VALIDACIONES Y LAS FUNCIONES ASÍNCRONAS DE
LOS CONTROLADORES ................................................................................................................ 50
12 Refactorización de los controladores cursos y usuarios ............................................... 53
13 BASE DE DATOS MONGODB ATLAS (CLOUD) ............................................................ 57
14 DESPLIEGUE DE LA API REST EN HEROKU ............................................................... 60
14.1 Heroku ................................................................................................................................... 60
14.2 CLI (command Line Interface) Heroku ................................................................................... 61
15 PRUEBA DE LOS ENDPOINT EN PRODUCCIÓN ......................................................... 65
16 CONSTRUCCIÓN DE LA DOCUMENTACIÓN DE LA API REST ................................ 65
17 EXPORT COLLECTION ....................................................................................................... 67
18 RETOS ACADÉMICOS ......................................................................................................... 69

Page 1 of 71
1 TEMA

Construcción de una API REST con Node JS, Express y Java Script.

2 OBJETIVO GENERAL

Construir una API REST con Node JS, Express y Java Script.

3 OBJETIVOS ESPECÍFICOS

Comprender qué es la arquitectura de software REST.


Comprender qué es una API REST.
Comprender los principios REST.
Analizar la autonomía de una petición y una respuesta HTTP.
Interpretar los métodos HTTP.
Interpretar los status code HTTP.
Modelar y almacenar datos semiestructurados en una base de datos Not Only SQL Mongo
DB.
Publicar la API REST en Heroku.
Evaluar las peticiones realizadas a la API REST y las respuestas generadas por la misma
empleando la aplicación Postman.

4 HERRAMIENTAS DE SOFTWARE REQUERIDAS

Node JS y NPM.
MongoDB, MongoDB Atlas (Cloud) y MongoDB Compass.
Visual studio code. Opcionalmente podrá usar otros editores de texto como: Atom, Sublime
Text y Brackets.
Postman
Github y git desktop

5 VALIDACIÓN INICIAL DEL ENTORNO DE DESARROLLO

Antes de empezar debe validar que las herramientas base estén instaladas y configuradas
correctamente; así:

6 CREACIÓN DEL REPOSITORIO REMOTO

En github cree un nuevo repositorio remoto. Nombre sugerido NodeJS_Express_Mongo

Page 1 of 71
Una vez creado el repositorio remoto obtenga la URL con la cual podrá clonar el repositorio en el
espacio de trabajo local; así:

Page 2 of 71
7 CREACIÓN DEL REPOSITORIO LOCAL

Desde la aplicación git desktop clone el repositorio remoto en un espacio de trabajo local

Debe especificar la ruta del repositorio local; así:

Si la operación de clonación es exitosa, haga un git fetch del repositorio remoto al local.

Page 3 of 71
Valide que los archivos base del repositorio remoto se hayan sincronizado al repositorio local.

8 CREACIÓN DEL PROYECTO NODEJS

Desde una terminal de comandos y estando posicionado en la carpeta raíz del proyecto, escriba el
siguiente comando:

npm init Presione enter ()

Suministre la información para cada uno de los puntos solicitados por el asistente. Presione enter ().
Lo anterior dará origen al archivo de manifiesto llamado package.json.

Nota: Si no desea diligenciar los datos de entrada del manifiesto del archivo package.json, ingrese el
comando npm init --y.

Page 4 of 71
9 INSTALACIÓN Y CONFIGURACIÓN DE PAQUETES COMPLEMENTARIOS DESDE VISUAL
STUDIO CODE

Abra el proyecto en su editor de texto favorito y agregue un archivo llamado hello-world.js

Digite el siguiente código:

Nota: para más información, véase módulo http.server, disponible en:


https://nodejs.org/api/http.html#class-httpserver

En Visual Studio Code, abra una nueva terminal

En la terminal ejecute el siguiente comando

Presione enter ()

Si recibe como respuesta el siguiente mensaje, el entorno NodeJS se encontrará correctamente


ejecutándose.

Page 5 of 71
Valide en el navegador web que el sitio muestre la salida esperada:

9.1 Sincronización del repositorio local con el repositorio remoto

En una terminal de visual studio code, verifique el estatus de los archivos del proyecto:

Inicie el seguimiento (Staging Area) de los archivos contenidos en el directorio de trabajo (Working
Directory) local; así:

git add --all Presione enter ()

Valide los cambios a realizar:

git status Presione enter ()

Page 6 of 71
Confirme los cambios en el repositorio local

git commit -a -m ‘Servidor web funcionando correctamente’

Presione enter ()

Verifique que los cambios se realizaron correctamente y que está listo para publicarlos en el repositorio
remoto.

git status Presione enter ()

Antes de incorporar los cambios en la rama principal del repositorio remoto, traiga los últimos cambios
del repositorio remoto al repositorio local

git fetch origin Presione enter ()

Publique los cambios en el repositorio remoto desde la rama local (main)

git push origin main Presione enter ()

Page 7 of 71
Verifique que el archivo de prueba Hello-World.js se encuentre publicado en el repositorio remoto.

9.2 Creación de una rama auxiliar en el repositorio local

En el repositorio local, cree una rama auxiliar llamada nodemon; así:

git branch nodemon

Pásese a la nueva rama

git checkout nodemon

9.3 Instalación del paquete NODEMON

En la terminal de Visual Studio Code instale el paquete Nodemon; así:


npm install -save-dev nodemon

Page 8 of 71
Nota: para más información véase, https://www.npmjs.com/package/nodemon

Nodemon es una herramienta que ayuda a desarrollar aplicaciones basadas en node.js reiniciando
automáticamente la aplicación node cuando se detectan cambios de archivos en el directorio.

Pruebe el funcionamiento de nodemon

nodemon hello-world.js

9.4 Registrar nodemon en las dependencias.

Una vez instalado el paquete de nodemon, verifique que en el archivo package.json se haya
agregado el paquete a las dependencias.

Page 9 of 71
Luego actualice los cambios en el repositorio local

git commit -a -m ‘nodemon instalado’

Haga todas las pruebas pertinentes en la rama nodemon. Luego pase a la rama main e incorpore los
cambios desde la rama nodemon; así

git checkout main


git merge nodemon

Page 10 of 71
Consolide la rama main; así:

git add --all

git status

Confirme los cambios en el repositorio local.

git commit -a -m ‘Confirmando cambios tras la instalación de nodemon’

Publique los cambios en el repositorio remoto:

git commit push origin main

Page 11 of 71
Borre la rama auxiliar nodemon:

git branch -d nodemon

9.5 Creación de la rama (Branch) Express

En el repositorio local, cree una rama llamada express

Instale el framework de Express. Para más información véase:


http://expressjs.com/en/starter/installing.html

npm install express

Cree un archivo llamado hello-world-express.js, dentro de él digite el siguiente código:

Page 12 of 71
En la terminal ejecute el archivo para verificar si funciona correctamente:

Ahora, valide que funciona correctamente el servidor web en el navegador

Prepare los cambios en la rama auxiliar llamada express del repositorio local; así:

git status
git add --alll
git commit -a -m ‘Express instalado y configurado correctamente’
git status

Page 13 of 71
Fusione el trabajo realizado en la rama express en la rama main del repositorio local.

git checkout main


git fetch origin
git merge express

Publique los cambios de la rama main del repositorio local en el repositorio remoto.

git push origin main

Page 14 of 71
Valide los cambios en el repositorio remoto.

Antes de empezar a instalar otros paquetes, se debe eliminar la rama auxiliar llamada express; así:

git branch -d express

9.6 Instalación de otros paquetes

Ahora, debe crear una nueva rama llamada otrospaquetes; así:

git checkout -b otrospaquetes

En la nueva rama se debe instalar los siguientes paquetes: mongoose y @hapi/joi

git log --oneline –decorate


npm install mongoose
npm install @hapi/joi
git status

Page 15 of 71
Debe preparar y confirmar los cambios; así:

git add –all


git commit -a -m ‘Mongose y @hapi/joi instalados correctamente’
git status

Page 16 of 71
Fusione las ramas del repositorio local y suba los cambios al repositorio remoto

git checkout main


git fetch origin
git merge otrospaquetes
git Branch -d otros paquetes
git log –oneline -decorate

En este punto ya tendrá acondicionado el ecosistema de desarrollo para la construcción de la API


REST.

10 CODIFICACIÓN DE LA API REST

10.1 Creación de la rama auxiliar apirest

Para la codificación y pruebas de la API REST para usuarios y Cursos, cree una rama auxiliar
llamada apirest.

Page 17 of 71
10.2 Estructuración del proyecto

a) Cree una carpeta llamada controllers


b) Cree una carpeta llamada models
c) Dentro de la carpeta llamada controllers cree los ficheros cusrsos.js y usuarios.js
d) Dentro de la carpeta llamada models cree los ficheros cusrso_model.js y
usuario_model.js
e) En la raíz del sitio cree el fichero index.js

10.3 Configuración de la conexión a la base de datos MongoDB

En el archivo index.js configure la conexión local a la base de datos userscoursesdb la cual se


almacenará en MongoDB; así:

Page 18 of 71
Pruebe el funcionamiento del servicio:

10.4 Codificación de los controladores

a) Código controlador cursos

b) Código controlador usuarios

En el archivo principal de la aplicación index.js invoque los controladores y exponga los recursos a
través de los endpoints

Page 19 of 71
10.5 Endpoints de tipo GET para los recursos Cursos y Usuarios

Refactorice los controladores. Implemente los endpoint de tipo GET tanto para CURSOS, como para
USUARIOS. Así;

a) Endpoint de tipo GET para el recurso CURSOS

b) Endpoint de tipo GET para el recurso USUARIOS

Page 20 of 71
En la terminal ejecute el archivo principal de la aplicación, llamado index.js

Proceda a probar los endpoint de tipo GET que acaba de crear para los recursos cursos y usuarios.
Para ello utilice POSTMAN.

a) GET Usuarios

Page 21 of 71
b) GET Cursos

Prepare los cambios y confírmelos en la rama auxiliar local denominada apirest.

git add --all


git commit -a -m ‘Estructurando el proyecto API REST. Index, modelos y controladores’
git status

Fusione la rama apirest con la rama main local.

git checkout main


git merge apirest
git status

Page 22 of 71
Actualice los cambios de la rama main local en la rama main remota:

git fetch origin


git push origin main

Compruebe los cambios en el repositorio remoto.

Page 23 of 71
Retorne a la rama local auxiliar local llamada apirest para crear el modelo de usuarios

git checkout apirest

10.6 Modelo y esquema para el objeto usuario

En el archivo usuario_model.js; construya y exporte el modelo y el esquema del objeto usuario.

Prepare y confirme los cambios en la rama local

10.7 Validación del objeto usuario

En el controlador usuarios, implemente el mecanismo de validación del usuario. Incluya el paquete


JOI a través de la siguiente constante:

const Joi = require('@hapi/joi');

Page 24 of 71
10.8 Endpoint de tipo POST para el recurso usuarios

En el controlador usuarios implemente una función que le permita crear y retornar un usuario.

En el controlador usuarios construya el endpoint de tipo POST que le permita agregar un usuario en
la base de datos.

Page 25 of 71
Guarde los cambios y pruebe enviar un USUARIO a través de una petición de tipo POST; para ello
emplee POSTMAN.

Si todo va bien, debe recibir el objeto creado como respuesta, acompañado del status code 200 OK.

Page 26 of 71
Además; puede verificar que se haya creado la colección de usuarios y el objeto usuario en la base de
datos de MongoDB; así:

10.9 Endpoint de tipo PUT para el recurso usuarios

Codifique el endpoint de tipo PUT para que pueda actualizar los objetos de tipo usuario. Sólo podrá
actualizar el nombre y la contraseña. No podrá actualizar el correo, ya que funge como único
identificador (UID).

En el controlador usuario, agregue la función actualizarUsuario; así:

Posteriormente agregue el endpoint de tipo PUT para el recurso usuario; así:

Page 27 of 71
A través de la herramienta POSTMAN pruebe el endpoint de tipo PUT; así:

Luego valide en la base de datos MongoDB que se haya actualizado el objeto correctamente; así:

Page 28 of 71
Prepare y confirme los cambios en el repositorio local.

Retorne a la rama principal local (main). Fusione las nuevas funcionalidades desde la rama auxiliar
apirest a la rama principal local llamada main.

Envié los cambios al repositorio remoto. Para ello, actualice los cambios de la rama main local en la
rama main remota:

git fetch origin


git push origin main
git status

Page 29 of 71
git remote show origin

Finalmente, verifique que los cambios se vean reflejados en el repositorio remoto; así.

Antes de continuar, retorne a la rama auxiliar llamada apirest; así

10.10 Endpoint de tipo DELETE para el recurso usuarios

Implemente el mecanismo para cambiar de estado a los usuarios. No se eliminarán para no perder la
trazabilidad. Sólo pasaran de true a false.

En el controlador usuarios debe implementar una función que le permita inactivar los usuarios; así:

Page 30 of 71
Luego debe construir el endpoint que reciba peticiones de tipo DELETE para el recurso usuarios.

Posteriormente debe realizar las pruebas al endpoint de tipo DELETE para el recurso USUARIOS
desde POSTMAN; así:

Page 31 of 71
Si la petición es exitosa, recibirá como respuesta un status code 200 OK y el atributo estado habrá
pasado a false.

Verifique que el usuario este inactivo en la base de datos. Es decir; que el atributo estado se encuentre
en falso. Así:

Page 32 of 71
Prepare y confirme los cambios en la rama auxiliar denominada apirest del repositorio local; así:

Fusione la rama apirest con la rama main del repositorio local; así:

Valide que en efecto se hayan incorporado los cambios en el repositorio remoto.

Retorne a la rama local auxiliar llamada apirest; así:

Page 33 of 71
10.11 Endpoint de tipo GET para el recurso usuarios

Codifique la funcionalidad que le permita listar todos los usuarios activos de la base de datos. Para lo
cual debe editar el controlador USUARIOS e implementar una función llamada listarUsuariosActivos
que retorne aquellos usuarios cuyo estado sea igual a true.

Ahora refactorice el endpoint de tipo GET en el controlador de USUARIOS y agregue el siguiente


código:

A través del cliente de la API (Postman), ponga a prueba el endpoint de tipo GET para validar que liste
todos los usuarios activos; así:

Page 34 of 71
Prepare e incorpore los cambios en la rama auxiliar local denominada apirest; así:

Fusione el contenido de la rama auxiliar en la rama principal

Page 35 of 71
Publique los cambios en la rama principal del repositorio remoto.

Valide que los cambios en efecto se hayan replicado en el repositorio remoto.

Retorne a la rama local auxiliar llamada apirest; así:

Page 36 of 71
10.12 Modelo y esquema para el objeto curso

En el archivo curso_model.js, cree el modelo correspondiente al objeto curso.

Agregue los cambios a la rama local auxiliar denominada apirest

10.13 Endpoint de tipo POST para el recurso cursos

En el controlador cursos implemente una función que permita agregar cursos a la colección de la
base de datos.

Page 37 of 71
Agregue un endpoint de tipo POST que exponga la ruta para el recurso CURSOS.

Pruebe el endpoint de tipo POST con el cliente de la API (Postman).

Si la prueba ha sido exitosa, el cliente de la API mostrará un status code 200 OK.

Contraste los resultados en la base de datos

Page 38 of 71
Agregue los cambios a la rama local auxiliar denominada apirest

Fusione la rama auxiliar (apirest) con la principal (main) del repositorio local; así:

Page 39 of 71
Sincronice los cambios de la rama principal (main) local en el repositorio remoto

Verifique la sincronización de los cambios en el repositorio remoto

Retorne a la rama local auxiliar llamada apirest; así:

Page 40 of 71
10.14 Endpoint de tipo PUT para el recurso cursos

En el controlador cursos debe crear una función asíncrona para actualizar los cursos creados con
antelación, así:

Posteriormente cree un endpoint que responda a las peticiones de tipo PUT para el recurso CURSOS;
así:

Una vez implementada la función y el endpoint haga las pruebas pertinentes desde la herramienta
cliente (Postman)

Antes de la actualización.

Page 41 of 71
Durante la actualización

Si la petición de tipo PUT se realiza correctamente, recibirá por respuesta un status code 200 OK.

Contraste el resultado obtenido con la base de datos MongoDB.

Prepare y confirme los cambios en la rama auxiliar local denominada apirest; así:

Fusione el contenido de las ramas auxiliar (apirest) y principal (main) del repositorio local.

Page 42 of 71
Envié el contenido actualizado de la rama principal (main) local al repositorio remoto; así:

Válide el contenido actualizado en el repositorio remoto; así:

Retorne a la rama local auxiliar llamada apirest; así:

Page 43 of 71
10.15 Endpoint de tipo DELETE para el recurso cursos

En este punto debe implementar una funcionalidad que le permita cambiar el estado a los cursos. Es
decir, pasarlos de estado activo a inactivo. Para ello en el controlador cursos debe construir una
función asíncrona para tal propósito, así:

Ahora debe exponer el recurso cursos a través de un endpoint de tipo DELETE; así;

Una vez construida la función y el endpoint para inactivar curos haga las pruebas pertinentes desde la
herramienta cliente (Postman); así:

Page 44 of 71
Si la operación es exitosa, recibirá como respuesta un status code 200 OK. Contraste el resultado
obtenido con los registros de la base de datos.

Antes de la inactivación:

Page 45 of 71
Después de la inactivación:

Prepare y confirme los cambios en la rama auxiliar (apirest) del repositorio local:

Fusione los cambios de la rama auxiliar (apirest) en la rama principal (main) local.

Actualice el repositorio remoto desde el repositorio local

Page 46 of 71
Valide los cambios en el repositorio remoto:

10.16 Endpoint de tipo GET para el recurso cursos

En el controlador cursos debe crear una función que retorne el listado de cursos activos (estado =
true).

Refactorice el endpoint de tipo GET para el recuro cursos:

Page 47 of 71
Pruebe en la herramienta cliente (Postman) el endpoint de tipo GET para el recurso cursos; así:

Page 48 of 71
Prepare y confirme los cambios a la rama auxiliar (apirest) del repositorio local:

Fusione la rama auxiliar (apirest) en la rama principal (main) del repositorio local

Publique los cambios en el repositorio remoto

Contraste el resultado en el repositorio remoto

Page 49 of 71
11 SEPARACIÓN DE LAS VALIDACIONES Y LAS FUNCIONES ASÍNCRONAS DE LOS
CONTROLADORES

En la raíz del proyecto cree un directorio llamado logic. Dentro de él, cree los archivos curso_logic.js
y usuario_logic.js

Separe las validaciones y las funciones asíncronas de cada uno de los controladores en los
correspondientes archivos del directorio logic. Al finalizar el proceso, no olvide exportar las funciones
y las validaciones.

a) curso_logic.js

Page 50 of 71
Page 51 of 71
b) usuario_logic.js

Adicione y exporte las otras funciones:

Page 52 of 71
12 Refactorización de los controladores cursos y usuarios

Tras la separación de las funciones y las validaciones que hacen parte de la lógica de la aplicación,
refactorice las líneas de código resaltadas en color naranja en los controladores.

a) Controlador cursos.js

Page 53 of 71
a) Controlador usuarios.js

Page 54 of 71
Tras los cambios realizados debe probar en Postman todas las funcionalidades de la API REST.

En cada uno de los casos, asegúrese de recibir un status code 200 OK.

Preparare y confirme los cambios en la rama auxiliar llamada apirest del repositorio local.

Fusione las ramas locales.

Page 55 of 71
Publique los cambios en el repositorio remoto

Valide los cambios en el repositorio remoto:

Page 56 of 71
13 BASE DE DATOS MONGODB ATLAS (CLOUD)

Para poner en producción la API REST, se requiere implementar la base de datos en la plataforma
cloud de MongoDB Atlas. Para lo cual debe registrarse en https://www.mongodb.com/atlas

a) Inicie sesión.
b) Cree la organización:

c) Cree el proyecto, el clúster y los usuarios de lavase de datos:

d) Cree la base de datos

Page 57 of 71
e) Extraiga el mecanismo de conexión

f) Monitoree el cluster

Page 58 of 71
g) Interactúe con la base de datos, las colecciones y los documentos.

h) Ajuste las reglas de acceso del firewall de la base de datos MongoDB Atlas

a) Modifique la cadena de conexión en el archivo index.js de la aplicación:

Page 59 of 71
14 DESPLIEGUE DE LA API REST EN HEROKU

Previo al despliegue de la API REST, refactorice el código fuente de la aplicación. En el archivo indesx.js,
en la sección de scripts, agregue los parámetros de inicio y despliegue de la aplicación.

Actualice los cambios en el repositorio local y en el repositorio remoto.

14.1 Heroku
Para el despliegue de la API REST, regístrese en Heroku e inicie sesión.

Cree una nueva app. Defina el nombre de la App. Ejemplo:

Page 60 of 71
14.2 CLI (command Line Interface) Heroku

Desde el centro de desarrollo de Heroku, descargue el CLI para su sistema operativo correspondiente
al ecosistema NODE. Disponible en:

https://devcenter.heroku.com/articles/getting-started-with-nodejs#set-up

Una vez instalada la herramienta CLI y en una terminal de visual studio code del proyecto en
construcción ejecute la siguiente instrucción:

Page 61 of 71
Lo enviará a su navegador web. Allí debe suministrar las credenciales para la autenticación y
autorización del agente CLI.

Si el proceso de autenticación y autorización es exitoso podrá continuar con el proceso de despliegue


de la API REST.

Page 62 of 71
Como ya tiene creado el proyecto e iniciado el repositorio git, omita las dos primeras sentencias.
Vaya a la tercera sentencia. Para ello tome los datos suministrados por el asistente de heroku según
su parametrización. Ejemplo:

Proceda al despliegue de la API REST, ingresando y ejecutando los siguientes comandos.

Page 63 of 71
Es posible que deba remplazar el nombre de la rama master pon la rama main

Si el proceso de despliegue fue exitoso habrá obtenido la URL a través de la cual podrá interactuar
con los endpoint de los recursos de la API REST. Ejemplo:

https://api-rest-node-without-jwt-lab1.herokuapp.com/api/usuarios

Page 64 of 71
15 PRUEBA DE LOS ENDPOINT EN PRODUCCIÓN

Una vez puesta en producción la API REST, pruebe cada una de los endpoint sobre el entorno de
heroku. Ejemplos:

a) https://api-rest-node-without-jwt-lab1.herokuapp.com/api/usuarios
b) https://api-rest-node-without-jwt-lab1.herokuapp.com/api/cursos

16 CONSTRUCCIÓN DE LA DOCUMENTACIÓN DE LA API REST

Empleando herramientas como swagger, postman, etcétera; construya la documentación para la API
REST. Ejemplo:

Page 65 of 71
Page 66 of 71
17 EXPORT COLLECTION

Exporte en formato JSON los recursos, endpoints y datos de prueba de la API REST.

Obtendrá un archivo en formato JSON como el siguiente.

Edite el archivo para visualizar su contenido. Analice su contenido y haga las pruebas pertinentes.

Page 67 of 71
Page 68 of 71
18 RETOS ACADÉMICOS

a) Reto backend

Ahora que ya tiene buena parte del backend, investigue y desarrolle las siguientes funcionalidades.

1. Desarrollar la función y el endpoint que permita buscar cursos y usuarios por ID.
2. Implementar Swagger.
3. Implementar JSON Web Tokens.
4. Autenticación y autorización basada en roles.

b) Reto frontend

Desarrolle un proyecto de software de tipo frontend empleando alguna o varias de las siguientes
librerías o frameworks:

a) Angular.
b) React.
c) Vue.
d) Blazor WA.

Nota: Concerté el cronograma de trabajo, metodología, los términos y los entregables con su
instructor.

FIN.

Page 69 of 71

También podría gustarte