La creación de APIs robustas requiere no solo conocimientos de programación, sino también herramientas adecuadas para probarlas y documentarlas. Postman se ha convertido en un aliado indispensable para desarrolladores que buscan optimizar su flujo de trabajo al construir, probar y compartir APIs. En este contenido, exploraremos cómo configurar Postman para probar endpoints en Express.js, una habilidad fundamental para cualquier desarrollador backend.
¿Por qué es importante instalar Postman para el desarrollo de APIs?
Postman es una herramienta poderosa que va más allá de simplemente probar endpoints. Te permite documentar tus APIs y crear recursos completos que puedes compartir con tu equipo. Esto facilita enormemente la colaboración y asegura que todos entiendan cómo funciona la API que estás construyendo.
Existen dos formas principales de utilizar Postman:
Desde el navegador con el agente instalado (para escuchar cambios en localhost)
Instalando la aplicación directamente en tu computadora
La documentación adecuada de tus APIs es crucial tanto para tu desarrollo profesional diario como para los proyectos que construyas. Una API bien documentada es más fácil de mantener, escalar y compartir con otros desarrolladores.
¿Cómo crear un workspace en Postman para tus proyectos?
Para organizar tus pruebas de API, es recomendable crear un workspace dedicado:
Ve a la sección "Workspace" en Postman
Selecciona "Create Workspace"
Deja la configuración en blanco inicialmente
Dale un nombre descriptivo (por ejemplo, "curso-express-js")
Configúralo como personal si no necesitas colaboración
Es importante mencionar que Postman ofrece funcionalidades gratuitas para uso personal, aunque tiene opciones de pago para trabajo colaborativo en equipos. Para proyectos individuales, la versión gratuita es más que suficiente.
¿Cómo configurar solicitudes para probar endpoints en Express?
Existen varias formas de crear solicitudes en Postman:
Manualmente, configurando cada solicitud una por una
Importando un archivo JSON con la configuración de las solicitudes
Utilizando inteligencia artificial para generar el archivo JSON basado en la descripción de tus endpoints
Para nuestro caso práctico, vamos a enfocarnos en probar dos endpoints específicos:
Un endpoint para procesar datos de formulario (/form)
Un endpoint para recibir datos JSON (/api/data)
// Configuración para el endpoint de formulario// POST /form// Content-Type: application/x-www-form-urlencoded{"nombre":"Juan Tavares","email":"ejemplo@correo.com"}// Configuración para el endpoint de datos JSON// POST /api/data// Content-Type: application/json{"clave1":"valor1","clave2":"valor2"}
¿Cómo probar endpoints que reciben diferentes tipos de datos?
Probando el endpoint para formularios
Al probar el endpoint para formularios, es crucial verificar que los nombres de los campos coincidan exactamente con lo que espera tu servidor. En nuestro ejemplo:
Configuramos el Content-Type como "form-data" o "x-www-form-urlencoded"
Agregamos los campos "nombre" y "email" con sus valores
Es importante notar la diferencia entre los nombres de los campos en la interfaz y en la lógica de programación. Mientras que en la interfaz podemos usar "nombre" (en español), en el código backend podríamos estar usando "name" (en inglés). Esta distinción es permitida, aunque lo ideal es mantener consistencia usando inglés en todo el código.
Al enviar la solicitud, deberíamos recibir una respuesta exitosa (código 200 o 201) con los datos procesados.
Configuramos el Content-Type como "application/json"
Agregamos un objeto JSON en el cuerpo de la solicitud
{"clave1":"valor1","clave2":"valor2"}
Al enviar esta solicitud, deberíamos recibir una respuesta con código 201 (Created) y un objeto que confirma los datos recibidos.
¿Por qué es importante documentar tus APIs en GitHub?
La documentación es una parte esencial del desarrollo de APIs. No solo ayuda a otros desarrolladores a entender cómo usar tu API, sino que también te ayuda a ti mismo cuando necesites revisarla en el futuro.
Es recomendable:
Guardar tus configuraciones de Postman
Documentar cada endpoint con ejemplos de solicitud y respuesta
Mantener actualizada la documentación a medida que tu API evoluciona
Compartir el archivo de configuración de Postman junto con tu código
Esto facilita enormemente la colaboración y asegura que cualquier persona que trabaje con tu API pueda entenderla rápidamente.
El uso adecuado de herramientas como Postman no solo mejora tu flujo de trabajo como desarrollador, sino que también eleva la calidad de tus APIs al garantizar que están bien probadas y documentadas. ¿Has utilizado Postman en tus proyectos? Comparte en los comentarios cómo organizas tus pruebas de API y qué estrategias de documentación has encontrado más efectivas.
Como parte de las 'buenas prácticas' en el uso de postman, siempre trato de crear un 'entorno' con las variables globales de la API que deseo testear. Esto me ayuda a tener todas las variables en un solo lugar (podría tener api keys).
Los invito a configurarla siguiendo estos pasos:
1. En la barra izquierda acceden a 'Enviroments'
2. Pulsan el botón con símbolo de suma '+' para crear el entorno
3. Eligen el nombre del entorno, puede ser 'dev'
4. Agregan las variables y su valor en los campos disponibles, pueden elegir entre tipo 'default' o 'secret' dependiendo si es un dato sensible o no.
Luego para usar las variables solo deben regresar a 'collections' y agregar la variable usando doble llave, así '{{nombre_variable}}'. En la siguiente imagen dejo un ejemplo de como usarlas.
Así si tengo más de dos entornos ('dev', 'prod' o 'testing') solo creo el 'enviroment' y en la parte superor me permite moverme entre ambientes fácilmente sin tener que manipular mucha info. Espero les sirva. :)
No lo sabia, muchas gracias me ha funcionado.
Gracias por la información, es muy útil
Con tanto cambio de interfaz... no encuentro los recursos de la clase 🤔, ¿dónde se encuentran?
Esta Abajo del Resumen como archivo descargable.
¿Ya buscaste en tu pantalón? a lo mejor y ahí están
Saludos compañeros;
Para aquellos que estén curiosos, reacios o que simplemente no deseen instalar Postman, existen otras herramienta como Hoppscotch (https://hoppscotch.io/) es similar a Postman y todo desde el navegador, aunque también tiene su versión de escritorio.
Es importante denotar que para funcionar con Endpoints o enlaces que apuntan a nuestra propia maquina requiere configurar e instalar una extensión en el navegador. Adjunto enlace para instalar extensión para navegador y configuración para trabajar con instancia auto alojada o localhost:
Éxitos y nunca paren de aprender👍.
Al principio me daba este error: TypeError: Cannot read properties of undefined (reading 'name').
Lo que hice fue que tuve que cambiar los Headers en Postman a Content-Type: application/json y luego en la pestaña Body elegí raw y escribí el JSON así:
{"name":"William","email":"william@correo.com"}
Y ahí sí todo bien 👍
Les comparto el link donde pueden descargar Postman:
Mientras tanto dejo mi aporte por acá:
Importante para los que usan WSL, se puede usar ngrok a continuación dejo un paso a paso pero antes quiero explicar lo que yo entendí del problema.
Desde WSL no podemos exponer directamente el puerto (para mi caso usé 4000), esto se hace desde Windows y la conexión entre WSL y Windows para exponer dicho puerto la facilitará ngrok:
Vayan a y descarguen el instalador de Windows, descompriman y corran el .exe.
Eso les abrirá la terminal en Windows. Deben configurar el authtoken de ngrok, para eso creense una cuenta en la página de ngrok y en el apartado "Your Authtoken" copien ngrok config add-authtoken <AuthToken>
Vayan a esa terminal ejecutenlo y luego ejecuten ngrok http <puerto_WSL> (que para mi caso fue 4000) de esa forma les entregará la url desde la que se puede acceder, antes de pegarla en meta recuerden agregar /webhook a la URL y listo!
Tengo problemas porque instalé postman en Windows y todo el proyecto lo tengo en WSL, pude leer sobre el uso de ngrok para resolver el problema pero quisiera la solución recomendada por Platzi para los que trabajamos con esta configuración de entorno de desarrollo, nos podrían proporcionar una solución recomendada? Tuve problemas con el curso de whatsapp API y no pude avanzar y acá voy por el mismo camino. Gracias