0% encontró este documento útil (0 votos)
57 vistas13 páginas

2 API - Crear Servidor Con Express

Las API permiten que los componentes de software se comuniquen y compartan datos entre sí de forma sencilla. Proporcionan flexibilidad y simplifican el desarrollo de aplicaciones. Existen diferentes tipos de API como REST, SOAP y WebSocket, siendo REST las más populares actualmente. Las API ofrecen beneficios como integración, innovación, ampliación y facilidad de mantenimiento.

Cargado por

Michael stiven
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)
57 vistas13 páginas

2 API - Crear Servidor Con Express

Las API permiten que los componentes de software se comuniquen y compartan datos entre sí de forma sencilla. Proporcionan flexibilidad y simplifican el desarrollo de aplicaciones. Existen diferentes tipos de API como REST, SOAP y WebSocket, siendo REST las más populares actualmente. Las API ofrecen beneficios como integración, innovación, ampliación y facilidad de mantenimiento.

Cargado por

Michael stiven
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/ 13

API’s

¿Qué es una API?

Las API son mecanismos que permiten a dos componentes de software comunicarse entre sí
mediante un conjunto de definiciones y protocolos, in necesidad de saber cómo están
implementados. Esto simplifica el desarrollo de las aplicaciones y permite ahorrar tiempo y dinero.
Las API le otorgan flexibilidad; simplifican el diseño, la administración y el uso de las aplicaciones; y
ofrecen oportunidades de innovación, lo cual es ideal al momento de diseñar herramientas y
productos nuevos (o de gestionar los actuales).

Las API son un medio simplificado


para conectar su propia
infraestructura a través del
desarrollo de aplicaciones nativas
de la nube, pero también le
permiten compartir sus datos con
clientes y otros usuarios externos.
Las API públicas aportan un valor
comercial único porque
simplifican y amplían sus conexiones con los partners y, además, pueden rentabilizar sus datos (un
ejemplo conocido es la API de Google Maps).

Ejemplo1: imagínese una empresa distribuidora de libros que podría ofrecer a los clientes una
aplicación de nube que les permitiera a los empleados de la librería verificar la disponibilidad de los
libros con el distribuidor. El desarrollo de la aplicación podría ser costoso, verse limitado por la
plataforma, llevar mucho tiempo y requerir mantenimiento permanente.

Otra opción es que la distribuidora de libros proporcionara una API para verificar la disponibilidad
en inventario. Existen varios beneficios de este enfoque:

 Permite que los clientes accedan a los datos con una API que les ayude a añadir información
sobre su inventario en un solo lugar.
 La distribuidora de libros podría realizar cambios en sus sistemas internos sin afectar a los
clientes, siempre y cuando el comportamiento de la API fuera el mismo.
 Con una API disponible de forma pública, los desarrolladores que trabajan para la distribuidora
de libros, los vendedores o los terceros podrían desarrollar una aplicación para ayudar a los
clientes a encontrar los libros que necesiten. Esto podría dar como resultado mayores ventas u
otras oportunidades comerciales.

Ejemplo2: Ejemplo del mundo real, Twitter proporciona una API REST que puede consultar para
obtener los últimos tweets, puede proporcionar una consulta de búsqueda (o una etiqueta hash) y
devolverá los resultados en formato JSON. Puede ver mas información de la API de Twitter aquí:
https://developer.twitter.com/en/docs/twitter-api/v1/tweets/search/api-reference/get-search-
tweets.

Ejemplo3: The movie DB, API también del mundo real con más de 400000 desarrolladores y
empresas que utilizan la plataforma, TMDB se ha convertido en una fuente principal de metadatos
donde puede encontrar Millones de películas, programas de televisión y personas por descubrir. Por
ejemplo si sigue este link, encontraras un listado de películas que contienen la palabra Batman:
https://api.themoviedb.org/3/search/movie?api_key=591d0e2aa95db492efcabcbcd04f1ac1&lang
uage=en-US&query=batman&page=1&include_adult=false

En resumen, las API le permiten ofrecer acceso a los recursos y, al mismo tiempo, mantener la
seguridad y el control. Usted decide cómo habilita el acceso y a quiénes se lo otorga. La seguridad
de las API depende de su buena gestión, lo cual incluye el uso de una puerta de enlace de API. Para
conectarse a las API y crear aplicaciones que utilicen los datos o las funciones que ofrecen, se puede
utilizar una plataforma de integración distribuida que conecte todos los elementos, como los
sistemas heredados y el Internet de las cosas (IoT).

¿Qué significa API?

API significa “interfaz de programación de aplicaciones”. En el contexto de las API, la palabra


aplicación se refiere a cualquier software con una función distinta. La interfaz puede considerarse
como un contrato de servicio entre dos aplicaciones. Este contrato define cómo se comunican entre
sí mediante solicitudes y respuestas. La documentación de su API contiene información sobre cómo
los desarrolladores deben estructurar esas solicitudes y respuestas.

¿Cómo funcionan las API?

La arquitectura de las API suele explicarse en


términos de cliente y servidor. La aplicación que
envía la solicitud se llama cliente, y la que envía la
respuesta se llama servidor. En el ejemplo del
tiempo, la base de datos meteorológicos del
instituto es el servidor y la aplicación móvil es el
cliente.

Las API pueden funcionar de cuatro maneras


diferentes, según el momento y el motivo de su
creación.

API SOAP
Estas API utilizan el protocolo simple de acceso a objetos. El cliente y el servidor intercambian
mensajes mediante XML. Se trata de una API menos flexible que era más popular en el pasado.
API RPC
Estas API se denominan llamadas a procedimientos remotos. El cliente completa una función (o
procedimiento) en el servidor, y el servidor devuelve el resultado al cliente.

API WebSocket
La API WebSocket es otro desarrollo moderno de la API web que utiliza objetos JSON para pasar
datos. La API de WebSocket admite la comunicación bidireccional entre las aplicaciones cliente y el
servidor. El servidor puede enviar mensajes de devolución de llamada a los clientes conectados, por
lo que es más eficiente que la API REST.

API REST
Estas son las API más populares y flexibles que se encuentran en la web actualmente. El cliente envía
las solicitudes al servidor como datos. El servidor utiliza esta entrada del cliente para iniciar
funciones internas y devuelve los datos de salida al cliente. Veamos las API REST con más detalle a
continuación.

¿Qué son las API REST?

REST significa transferencia de estado


representacional. REST define un
conjunto de funciones como GET, PUT,
DELETE, etc. que los clientes pueden
utilizar para acceder a los datos del
servidor. Los clientes y los servidores
intercambian datos mediante HTTP.

La principal característica de la API REST


es la ausencia de estado. La ausencia de estado significa que los servidores no guardan los datos del
cliente entre las solicitudes. Las solicitudes de los clientes al servidor son similares a las URL que se
escriben en el navegador para visitar un sitio web. La respuesta del servidor son datos simples, sin
la típica representación gráfica de una página web.

¿Qué es una API web?

Una API web o API de servicios web es una interfaz de procesamiento de aplicaciones entre un
servidor web y un navegador web. Todos los servicios web son API, pero no todas las API son
servicios web. La API de REST es un tipo especial de API web que utiliza el estilo arquitectónico
estándar explicado anteriormente.
Los diferentes términos relacionados con las API, como API de Java o API de servicios, existen porque
históricamente las API se crearon antes que la World Wide Web. Las API web modernas son API de
REST y los términos pueden utilizarse indistintamente.

¿Qué son las integraciones de las API?

Las integraciones de las API son componentes de software que actualizan automáticamente los
datos entre los clientes y los servidores. Algunos ejemplos de integraciones de las API son la
sincronización automática de datos en la nube desde la galería de imágenes de su teléfono o la
sincronización automática de la hora y la fecha en su laptop cuando viaja a otra zona horaria. Las
empresas también pueden utilizarlas para automatizar de manera eficiente muchas funciones del
sistema.

¿Qué beneficios ofrecen las API REST?

Las API REST ofrecen cuatro beneficios principales:

1. Integración: Las API se utilizan para integrar


nuevas aplicaciones con los sistemas de
software existentes. Esto aumenta la
velocidad de desarrollo, ya que no hay que
escribir cada funcionalidad desde cero.
Puede utilizar las API para aprovechar el
código existente.
2. Innovación: Sectores enteros pueden
cambiar con la llegada de una nueva
aplicación. Las empresas deben responder
con rapidez y respaldar la rápida implementación de servicios innovadores. Para ello,
pueden hacer cambios en la API sin tener que reescribir todo el código.
3. Ampliación: Las API presentan una oportunidad única para que las empresas satisfagan las
necesidades de sus clientes en diferentes plataformas. Por ejemplo, la API de mapas
permite la integración de información de los mapas a través de sitios web, Android, iOS, etc.
Cualquier empresa puede dar un acceso similar a sus bases de datos internas mediante el
uso de API gratuitas o de pago.
4. Facilidad de mantenimiento: La API actúa como una puerta de enlace entre dos sistemas.
Cada sistema está obligado a hacer cambios internos para que la API no se vea afectada. De
este modo, cualquier cambio futuro que haga una de las partes en el código no afectará a
la otra.
¿Cuáles son los diferentes tipos de API?

Las API se clasifican tanto en función de su arquitectura como de su ámbito de uso. Ya exploramos
los principales tipos de arquitecturas de API, ahora veamos el ámbito de uso.

 API privadas: Estas son internas de una empresa y solo se utilizan para conectar sistemas y
datos dentro de la empresa.
 API públicas: Están abiertas al público y pueden cualquier persona puede utilizarlas. Puede
haber o no alguna autorización y coste asociado a este tipo de API. ej. api de Facebook,
Twitter, Google Maps, TheMovieDB, entre muchas más.
 API de socios: Solo pueden acceder a ellas los desarrolladores externos autorizados para
ayudar a las asociaciones entre empresas.
 API compuestas: Estas combinan dos o más API diferentes para abordar requisitos o
comportamientos complejos del sistema.

¿Cómo proteger una API de REST?

Todas las API deben protegerse mediante una autenticación y una supervisión adecuadas. Las dos
maneras principales de proteger las API de REST son las siguientes:

Tokens de autenticación
Se utilizan para autorizar a los usuarios a hacer
la llamada a la API. Los tokens de autenticación
comprueban que los usuarios son quienes
dicen ser y que tienen los derechos de acceso
para esa llamada concreta a la API. Por
ejemplo, cuando inicia sesión en el servidor de
correo electrónico, el cliente de correo
electrónico utiliza tokens de autenticación
para un acceso seguro.

Claves de API
Las claves de API verifican el programa o la aplicación que hace la llamada a la API. Identifican la
aplicación y se aseguran de que tiene los derechos de acceso necesarios para hacer la llamada a la
API en cuestión. Las claves de API no son tan seguras como los tokens, pero permiten supervisar la
API para recopilar datos sobre su uso. Es posible que haya notado una larga cadena de caracteres y
números en la URL de su navegador cuando visita diferentes sitios web. Esta cadena es una clave de
la API que el sitio web utiliza para hacer llamadas internas a la API.
¿Cómo crear una API?

Se requiere la debida diligencia y esfuerzo para crear una API con la que otros desarrolladores
quieran trabajar y en la que confíen. Los siguientes son los cinco pasos necesarios para un diseño de
API de alta calidad:

1. Planificación de la API
Las especificaciones de la API, como OpenAPI, proporcionan el esquema para el diseño de su API. Es
mejor pensar en los diferentes casos de uso por adelantado y asegurarse de que la API cumple con
los estándares de desarrollo actuales.

2. Creación de la API
Los diseñadores de API crean prototipos de API mediante código reutilizable. Una vez probado el
prototipo, los desarrolladores pueden personalizarlo a las especificaciones internas.

3. Prueba de la API
Las pruebas de la API son las mismas que las del software y deben hacerse para evitar errores y
defectos. Las herramientas de pruebas de la API pueden utilizarse para reforzar la prueba de la API
contra los ciberataques.

4. Documentación de la API
Aunque las API son explicativas, la documentación de las mismas sirve de guía para mejorar su uso.
Las API bien documentadas que ofrecen una gama de funciones y casos de uso tienden a ser más
populares en una arquitectura orientada a servicios.

5. Comercialización de la API
Así como Amazon es un mercado en línea para la venta minorista, los mercados de API existen para
que los desarrolladores compren y vendan otras API. Publicar su API puede permitirle monetizarla.

¿Es lo mismo Backend que API?

Cuando miramos el software y las aplicaciones desde la perspectiva de un desarrollador, podemos


ver que están sucediendo muchas cosas. Hay un frontend y luego un backend.

Front-end y back-end son términos que se refieren a la separación de intereses entre una capa de
presentación y una capa de acceso a datos, respectivamente. Según el contexto, para referirse a
front end se usan otros términos como frontal o interfaz de usuario, mientras que a backend se le
llama servidor, motor o modo administrador.

Todo, la lógica, las operaciones del lado del servidor y las funciones de la base de datos, es manejado
por el backend. Aunque el frontend es visible cuando desarrolla una aplicación, la mayor parte de
la funcionalidad de la aplicación se encuentra tras el backend.
A pesar de ser la parte central del software o una aplicación, el backend no es visible para el usuario
final, y la razón de esto es que el frontend está hecho para que las cosas parezcan menos complejas
y fáciles de usar.

A menudo, una API se considera un "componente" del back-end. Y, por ejemplo, una base de datos
también puede tratarse como otro componente de back-end. La mayoría de las veces no es útil
especificar que una API es el backend porque en realidad todos lo son. Si todo lo que tienes del lado
del servidor es una API, entonces puedes argumentar que la palabra backend y API serian lo mismo.
Si el servidor es algo más complejo diríamos que la API es un componente del backend.

Les sugiero complementar los conocimientos adquiridos hasta ahora con la visualización del
siguiente video: https://www.youtube.com/watch?v=JD6VNRdGl98.
CREAR SERVIDOR API-REST CON EXPRESS
Introducción

Express es un marco de aplicaciones web para


Node.js que le permite activar API y servidores web
robustos de una manera mucho más fácil y limpia.
Es un paquete ligero que no oscurece las
características .js Node central.

En este tutorial, instalará y utilizará Express para


crear un servidor web. Es recomendable, revisar
muy bien la documentación de todas las librerías y
código de terceros que vamos a utilizar en nuestras aplicaciones. Encuentra aquí la documentación
de Express: https://www.npmjs.com/package/express

Paso 1 — Configuración del proyecto

Primero, abra la ventana de su terminal y cree un nuevo directorio de proyecto:

Recuerde que para todas las instalaciones debe cerciorarse que este ubicado dentro de la carpeta
del proyecto. Después de cada instalación opcionalmente puede revisar el archivo package.json
para comprobar que la librería se instaló correctamente.

Ya ubicados en la carpeta del proyecto pueden inicializar un nuevo proyecto npm:

¿Recuerdan el comando?: npm init

A continuación, deberá instalar el paquete: express

npm install express

En este punto, tiene un nuevo proyecto listo para usar Express.

Paso 2 — Creación de un Servidor Express

Express.js se utiliza para crear APIs (interfaz de programación de aplicaciones) y aplicaciones


móviles. Se encarga de los detalles vitales del backend, como las sesiones, la gestión de errores y el
enrutamiento, es capaz de gestionar variadas y múltiples peticiones y respuestas http para URLs
específicas.

Permite definir rutas que corresponden a métodos HTTP como son peticiones GET, POST, PUT,
DELETE, etc.

Ahora que Express está instalado, cree un nuevo archivo y ábralo con su editor de código. A
continuación, agregue las siguientes líneas de código: para este ejemplo lo llamare: server.js.
Fuente: https://www.npmjs.com/package/express

server.js

En el bloque rojo importamos el módulo Express principal del paquete que instaló. Este módulo es
una función, que luego ejecutamos en la segunda línea para crear nuestro servidor en la variable
app. Puede crear varios servidores de esta manera, cada uno con sus propias solicitudes y
respuestas.

En las líneas del bloque azul definimos en nuestro servidor Express una solicitud de tipo GET. Express
incluye funciones similares para POST, PUT, DELETE, etc. usando app.post(...), app.put(...), etc.

Revisa el siguiente link para aprender más sobre las peticiones HTTP:
https://developer.mozilla.org/es/docs/Web/HTTP/Methods

Estas funciones toman dos parámetros principales. La primera es la URL (ruta) sobre la que actúa
esta función. En este caso ('/',…..), estamos apuntando, a la raíz de nuestro sitio web:
localhost:3000

El segundo parámetro es una función con dos argumentos: req y res. (req, …) representa la solicitud
que se envió al servidor; Podemos usar este objeto para recibir datos sobre lo que el cliente está
solicitando hacer y la información que está enviando. (…,res) representa la respuesta que
enviaremos de vuelta al cliente, para el ejemplo anterior es un objeto json con la clave 'msg'.

Por defecto res.json(…..) devuelve un código de status 200 ok, pero puede cambiarse mediante la
línea res.status(401).json(…..), para el ejemplo anterior se devolvería el código de status 401.
Para más información sobre códigos de estado revisen este link:
https://developer.mozilla.org/es/docs/Web/HTTP/Status

Finalmente, en el bloque amarillo, una vez que hayamos configurado nuestras solicitudes, ¡debemos
iniciar nuestro servidor! A la función listen le estamos pasando dos paramentos, el primero le dice
a la aplicación en qué puerto escuchar. La función pasada como segundo parámetro es opcional y
se ejecuta cuando se inicia el servidor. Esto nos proporciona algunos comentarios en la consola para
saber que nuestra aplicación se está ejecutando en el puerto 3000.

Teniendo la aplicación en ejecución:

 Abra en su navegador web, en la barra de direcciones coloque: localhost:3000 y obtendrá


el mensaje 'get Usuario' y en la terminal de la aplicación vera el mensaje “Escuchando
puerto”
 Ó, abra Postman y en una petición GET coloque: localhost:3000, igualmente obtendrá el
mensaje 'get Usuario' y en la terminal de la aplicación vera el mensaje “Escuchando puerto”

Y ahí lo tenemos, ¡un servidor web! corriendo. Sin embargo, definitivamente queremos enviar más
que una sola línea de texto al cliente.

Requisitos clave para una API REST

 Debe usar estándares web donde tengan sentido


 Debe ser amigable para el desarrollador y ser explorable a través de una barra de direcciones
del navegador
 Debe ser simple, intuitivo y consistente para hacer que la adopción no solo sea fácil sino también
agradable
 Debe proporcionar suficiente flexibilidad para impulsar la mayoría de la interfaz de usuario de
encantamiento.
 Debe ser eficiente, manteniendo el equilibrio con los otros requisitos
 Una API es la interfaz de usuario de un desarrollador: al igual que cualquier UI, es importante
asegurarse de que la experiencia del usuario se piense cuidadosamente.

Los principios clave de REST implican separar su API en recursos lógicos. Estos recursos se manipulan
utilizando solicitudes HTTP donde el método (GET, POST, PUT, PATCH, DELETE) tiene un significado
específico.

Cómo diseñar una API REST


Una vez que haya definido sus recursos, debe identificar qué acciones se aplican a ellos y cómo se
correlacionarían con su API.

Supongamos que tenemos una tabla o colección de una base de datos y queremos crear una API-
REST que haga un CRUD sobre ella.

 Usuarios

Crear un modelo URI


Ahora que el modelo de objetos está listo, es hora de decidir los URI de los recursos. Estas URI de
recursos son puntos finales para los servicios RESTful.

En nuestra aplicación, la tabla Usuarios es un recurso.

Los principios RESTful proporcionan estrategias para manejar las acciones CRUD utilizando los
métodos HTTP mapeados de la siguiente manera:

Ejemplo

GET / usuario Recupera una lista de usuarios

GET / usuario/12 Recupera un usuario específico (el que tiene el id 12)

POST / usuario Crea un nuevo usuario

PUT / usuario/12 Actualiza usuario # 12

DELETE / usuario/12 Elimina el usuario # 12

Lo mejor de REST es que aprovecha los métodos HTTP existentes para implementar funcionalidades
significativas en solo un punto final de tickets. No hay convenciones de nombres de métodos a seguir
y la estructura de URL es clara.

Viendo el código en Nodejs, quedaría de la siguiente forma:

 El código para GET / usuario

app.get('/usuario',function (req,res) {
res.json({'msg':"Recupera una lista de usuarios"})
});

Para probarlo, abre Postman y coloca el siguiente url:

 El código para GET / usuario/12

app.get('/usuario/:userId',(req,res)=>{
res.json({'msg':"Recupera un usuario específico (el que tiene el id 12)"})
});

Para probarlo, abre Postman y coloca el siguiente url:

 El código para POST / usuario. (noten que tanto en Postman, como en VSC ahora es post)

app.post('/usuario',(req,res)=>{
res.json({'msg':"Crea un nuevo usuario"})
});

Para probarlo, abre Postman y coloca el siguiente url:

 El código para PUT / usuario/12. (noten que tanto en Postman, como en VSC ahora es put)

app.put('/usuario/:userId',(req,res)=>{
res.json({'msg':"Actualiza usuario # 12"})
});

Para probarlo, abre Postman y coloca el siguiente url:

 El código para DELETE / usuario/12. (noten que tanto en Postman, como en VSC ahora es delete)

app.delete('/usuario/userId',(req,res)=>{
res.json({'msg':"Elimina el usuario # 12"})
});

Para probarlo, abre Postman y coloca el siguiente url:


GLOSARIO
 CRUD: El concepto CRUD está estrechamente vinculado a la gestión de datos digitales. CRUD
hace referencia a un acrónimo en el que se reúnen las primeras letras de las cuatro operaciones
fundamentales de aplicaciones persistentes en sistemas de bases de datos:

Create (Crear registros)


Read bzw. Retrieve (Leer registros)
Update (Actualizar registros)
Delete bzw. Destroy (Borrar registros)

En pocas palabras, CRUD resume las funciones requeridas por un usuario para crear y gestionar
datos.

 URI es la abreviatura de Uniform Resource Identifier, en español identificador uniforme de


recursos. Este término genérico se emplea para todos los tipos de nombres y direcciones que
se refieren a objetos de internet tales como páginas, imágenes, videos, etc.

 Códigos de estado: https://developer.mozilla.org/es/docs/Web/HTTP/Status

 Métodos de petición HTTP: HTTP define un conjunto de métodos de petición para indicar la
acción que se desea realizar para un recurso determinado. Aunque estos también pueden ser
sustantivos, estos métodos de solicitud a veces son llamados HTTP verbs. Cada uno de ellos
implementan una semántica diferente, pero algunas características similares son compartidas
por un grupo de ellos: GET, POST, PUT, DELETE, PATH, ETC. Más información:
https://developer.mozilla.org/es/docs/Web/HTTP/Methods.

 VSC: Visual Studio Code

También podría gustarte