Desarrollo de la API REST
Análisis y desarrollo de software
Servicio Nacional de Aprendizaje - SENA
Análisis y desarrollo de software
Desarrollo de la API REST
A continuación, se describen de manera sucinta los pasos requeridos para el desarrollo de
la API Rest con [Link]
01 Configuración de [Link]
Se configura el [Link] para implementar el nodemon, con el fin de que el servidor
funcione más rápido, como se muestra en la figura 1.
Figura 1. Código fuente del archivo [Link]
Referencia Nota. SENA (2021).
02 Creación del archivo [Link]
Se crea un nuevo archivo llamado [Link] como se muestra en la figura 2, en el cual se
implementa lo siguiente:
1 Se importa la librería de Express.
2 Se configura el listening del servidor, es decir, se precisa el puerto por donde va a
escuchar.
Servicio Nacional de Aprendizaje - SENA 01
Análisis y desarrollo de software
3 Se crea la ruta por defecto a manera de prueba, que es la URL por donde el servidor
responde las solicitudes que se le hacen. La definición de la ruta tiene la siguiente
estructura:
[Link](PATH, HANDLER)
Figura 2. Ejemplo de conexión entre 10 equipos o terminales
Referencia Nota. SENA (2021).
Se comprueba la ruta iniciando el servidor con el comando npm start desde la terminal del
Visual Studio Code. Una vez realizado esto, se debe abrir el browser de la preferencia e
inmediatamente se ingresa la dirección local por el puerto donde se está escuchando, que
para el caso de este ejemplo es el puerto 10000. A continuación, se presenta la figura que
ejemplifica este paso.
Figura 3. Browser con la ruta y puerto donde funciona el servido
Como se observa el servidor está activo escuchando desde el puerto 10000.
Servicio Nacional de Aprendizaje - SENA 02
Análisis y desarrollo de software
03 Instalación de mongoose y mLab MongoDB
Ahora se necesita una base de datos para almacenar la data que se quiere enviar o
registrar, para este caso se utilizará MongoDB. Al respecto, esta tecnología se diferencia de
otras porque no guarda los datos en tablas tal y como se hace en las bases de datos
relacionales, MongoDB en cambio guarda estructuras de datos en formato BSON (una
especificación similar a JSON) con un esquema dinámico. En ese sentido, esto permite que
la integración de los datos en ciertas aplicaciones sea más fácil y rápida.
En este orden de ideas, una de las formas para utilizar una base de datos MongoDB es con
la herramienta mongoose que establece la conexión a la base de datos MongoDB y
además permite realizar el mapeo de los esquemas realizados en MongoDB y utilizarlos.
De manera que se instala mongoose desde la terminal de Visual Studio Code así: tiene la
siguiente estructura:
$ npm install mongoose
Una vez instalado mongoose, se utiliza mLab para el cual crea una base de datos gratuita
de MongoDB, es decir, es un hosting para bases de datos MongoDB:
Enlace web. [Link]
Para la creación de la base de datos y del usuario de prueba se debe seguir la siguiente
guía:
Enlace web. [Link]
Servicio Nacional de Aprendizaje - SENA 03
Análisis y desarrollo de software
A continuación, se presenta la interfaz del hosting de bases de datos mLab /Atlas.
Figura 4. Interfaz de mLab funcionando
Referencia Nota. SENA (2021).
Una vez creada la base de datos se utiliza mongoose para realizar la conexión. Esta
codificación se realiza igualmente en el archivo [Link]. como se muestra en la siguiente
figura.
Figura 4. Código fuente del archivo [Link] (conexión BD)
Servicio Nacional de Aprendizaje - SENA 04
Análisis y desarrollo de software
El código de la conexión se puede generar a través de la plataforma mLab, Por lo tanto, se
puede elegir el modo de conexión. Para el caso del ejemplo se elige la opción “Connect
your application” como se muestra en la siguiente figura.
Figura 6. Panel de opción de conexión a la base de datos ofrecido por mLab/Atlas
Referencia Nota. SENA (2021).
Es importante anotar que las solicitudes que se envían y reciben deben estar en formato
JSON para que sean procesadas de manera correcta, por lo que es necesario convertir o
“parsear” a este formato la información que vaya por el método POST. Por lo tanto, se hace
necesario instalar el siguiente paquete:
$npm install body-parser
El archivo [Link] queda de la manera como se muestra en la siguiente figura.
Figura 7. Código fuente del archivo [Link] aplicando el body parser
Servicio Nacional de Aprendizaje - SENA 05
Análisis y desarrollo de software
Referencia Nota. SENA (2021).
04 Creación del modelo
Ahora se necesita crear los datos de prueba para que se puedan almacenar en la base de
datos, por lo tanto, se utilizará mongoose para generar los modelos. En ese sentido,
en la estructura de directorios del proyecto se crea una nueva carpeta llamada models
como se muestra a continuación.
Figura 8. Estructura de directorios (carpeta models)
Servicio Nacional de Aprendizaje - SENA 05
Análisis y desarrollo de software
Ahora se necesita una base de datos para almacenar la data que
se quiere enviar o registrar, para este caso seutilizará MongoDB.
Al respecto, esta tecnología se diferencia de otras porque no
guarda los datos en tablas tal ycomo se hace en las bases de
datos relacionales, MongoDB en cambio guarda estructuras de
datos en formato BSON (una especificación similar a JSON) con
un esquema dinámico. En ese sentido, esto permite que
laintegración de los datos en ciertas aplicaciones sea más fácil y
rápida.
En este orden de ideas, una de las formas para utilizar una base de datos MongoDB es con la
herramienta mongoose que establece la conexión a la base de datos MongoDB y demás
permite realizar el mapeo de los esquemas realizados en MongoDB y utilizarlos.
De manera que se instala mongoose desde la terminal de Visual Studio Code así:
Figura 9. Código fuente del archivo [Link] (modelo)
05 Configuración de las rutas
Se define la ruta para el modelo, para esto se crea una carpeta llamada routes en la raíz de la
estructura del proyecto y se genera un archivo [Link] como se muestra en la
siguiente figura.
Figura 10. Estructura de directorios (carpeta routes)
Referencia Nota. SENA (2021).
Servicio Nacional de Aprendizaje - SENA 06
Análisis y desarrollo de software
En el archivo [Link] se definen las acciones o tratamiento a cada
uno de los datos. Esto se hace a partir de las rutas o
direccionamiento que hace referencia a la determinación de
cómo responde una aplicación a una solicitud de cliente en
un determinado punto final, que es una URL (o una vía de
acceso) y un método de solicitud HTTP específico (GET, POST,
etc.) Es en esta instancia que se invocan acciones para guardar,
extraer, eliminar o visualizar datos, a partir del direccionamiento.
A continuación, se presenta el código.
Figura 10. Código fuente del archivo [Link] (rutas)
Servicio Nacional de Aprendizaje - SENA 07
Análisis y desarrollo de software
Referencia Nota. SENA (2021).
Servicio Nacional de Aprendizaje - SENA 08
Análisis y desarrollo de software
La clase [Link] sirve para crear manejadores o handlers de rutas
montables y modulares. Una instancia router es un sistema que invoca una función
cuando se presenta algún evento (middleware) y además presenta un
direccionamiento completo; por este motivo, a menudo se conoce como una
“miniaplicación” (Express, 2021).
La palabra clave async se añade a las funciones para indicar que devuelvan una
promesa en lugar de devolver directamente el valor. Adicionalmente, esto permite
que las funciones síncronas puedan evitar cualquier potencial de sobrecarga que
viene con correr el soporte por usar async. De esta manera, cuando una función es
declarada async con solo añadir la manipulación necesaria, el motor de JavaScript
puede optimizar el programa por sí mismo (Mozilla, 2021).
La expresión await provoca que la ejecución de una función async de una pausa
hasta que una promesa sea terminada o rechazada, y vuelve de nuevo a la
ejecución de la función async después de finalizada. Al regreso de la ejecución, el
valor de la expresión await se da por una promesa terminada (Mozilla, 2021).
Referencias bibliográficas
Mozilla. (2021). Await. MDN Web Docs.
Enlace web. [Link]
Reference/Operators/await
Servicio Nacional de Aprendizaje - SENA 09