Tutorial: Probar tu API con Postman
1. Objetivos de aprendizaje
Sección titulada «1. Objetivos de aprendizaje»Al terminar este tutorial vas a ser capaz de:
- Crear y enviar una petición HTTP desde Postman.
- Leer el código de estado, los headers y el body de una respuesta.
- Guardar una petición en una Collection para no reescribirla cada vez.
- Guardar la URL de tu backend en una variable de entorno, para no depender de dónde esté desplegado.
- Escribir un test simple que verifique el código de estado de la respuesta.
- Crear una petición
POSTcon un body JSON y verificar que el backend responda201 Created. - Exportar tu Collection y tu Environment, y guardarlos en tu repositorio, versionados junto con tu código.
Prerrequisitos: tener Postman instalado (lo hiciste en el
taller de ambiente de desarrollo), y tu
backend corriendo con GET /artistas respondiendo (./mvnw spring-boot:run,
como en el Paso 7 del tutorial de API REST)
y con POST /artistas respondiendo, como quedó en el
tutorial de agregar el endpoint POST.
2. Por qué probar con Postman
Sección titulada «2. Por qué probar con Postman»Ya verificaste tu endpoint con curl en el tutorial anterior. Eso sirve para
una comprobación rápida, pero tiene un límite: cada vez que quieres repetirla
tienes que volver a escribir el comando completo, y la respuesta llega como
texto plano sin formato.
Postman resuelve las dos cosas: guarda la petición para reutilizarla con un clic, y te muestra la respuesta organizada (status, headers y body por separado, con el JSON formateado y coloreado).
3. Conceptos: Workspace, Collection, Request, variables y Environment
Sección titulada «3. Conceptos: Workspace, Collection, Request, variables y Environment»Antes de crear nada, vale la pena tener claro el vocabulario que vas a usar en el resto del tutorial (y en el resto del curso):
- Workspace: el espacio de trabajo donde vive todo lo demás. Por defecto tienes uno personal, llamado My Workspace; ahí van a quedar guardadas tus Collections y tus Environments mientras trabajas en el proyecto de forma individual.
- Request: una petición HTTP guardada, con su método (
GET,POST, etc.), su URL, sus headers, su body y, opcionalmente, sus tests. Es la unidad más pequeña con la que trabajas en Postman. - Collection: una carpeta que agrupa Requests relacionados, para que no queden sueltos ni se pierdan entre los de tus compañeros de curso. Vas a tener una Collection por módulo.
- Variable: un valor con nombre que reutilizas en varias Requests
escribiendo
{{nombreVariable}}en vez de escribir el valor literal en cada una. - Environment: un conjunto de variables agrupadas con un propósito específico, por ejemplo “correr contra mi backend local”. Cambiar de Environment cambia de un solo golpe el valor de todas sus variables, sin tocar ninguna Request.
En los siguientes pasos vas a crear una Collection con dos Requests (GET y
POST), un Environment con una variable para la URL base, y al final vas a
exportar la Collection para dejarla versionada en tu repositorio.
4. Crear una Collection
Sección titulada «4. Crear una Collection»- Abre Postman y haz clic en New → Collection.
- Nómbrala igual que tu módulo, por ejemplo
Musical - Artistas. - Déjala creada: ahí vas a ir guardando las peticiones de tu módulo a medida que avances en el curso.
5. Crear un Environment para la URL base
Sección titulada «5. Crear un Environment para la URL base»Hoy tu backend corre en http://localhost:8080, pero eso va a cambiar: en
algún momento del curso lo vas a desplegar en un servidor, y la URL va a ser
otra. Si escribes esa URL directamente en cada petición, tienes que editarlas
todas a mano cada vez que cambie. Guardarla en una variable de tu Environment
te permite cambiarla en un solo lugar y que se actualicen todas tus
peticiones.
- En la esquina superior derecha, abre el selector de Environments (dice No Environment) → Add.
- Nómbralo igual que tu proyecto, por ejemplo
Musical - Local. - Agrega una variable:
- Variable:
baseUrl - Initial value y Current value:
http://localhost:8080
- Variable:
- Guarda, y selecciona ese Environment en el mismo selector de la esquina superior derecha (ya no debe decir “No Environment”).
6. Crear la petición GET /artistas
Sección titulada «6. Crear la petición GET /artistas»Dentro de la Collection que acabas de crear:
- Haz clic derecho sobre la Collection → Add request.
- Nómbrala
GET artistas. - Verifica que el método, a la izquierda de la barra de URL, esté en
GET. - En la barra de URL, escribe:
{{baseUrl}}/artistas- Haz clic en Send.
7. Leer la respuesta
Sección titulada «7. Leer la respuesta»Debajo de la barra de URL, Postman te muestra tres cosas:
- El código de estado, junto al tiempo de respuesta: debería ser
200 OK. - Headers, la pestaña con los headers de la respuesta, entre ellos
Content-Type: application/json. - Body, con el JSON completo, formateado e indentado.
Compara el body contra los datos de tu Gist: mismo número de artistas, mismos nombres, misma estructura anidada de álbumes y canciones.
8. Escribir un test que verifique el status code
Sección titulada «8. Escribir un test que verifique el status code»Revisar el status a simple vista funciona, pero no queda registrado en ningún lado: si vuelves a correr la petición mañana, tienes que revisarlo de nuevo a mano. Un test lo deja verificado y visible en Test Results cada vez que envías la petición.
En la petición GET artistas, abre la pestaña Scripts (al lado de
Body), elige Post-response y pega (en versiones anteriores de Postman,
esta pestaña se llamaba Tests):
pm.test("Status code es 200 OK", () => pm.expect(pm.response.code).to.equal(200));Haz clic en Send de nuevo. Debajo de la respuesta aparece la pestaña Test Results, con un ✅ junto al nombre de tu test.
9. Crear la petición POST /artistas y verificar el 201
Sección titulada «9. Crear la petición POST /artistas y verificar el 201»Un GET no manda datos, un POST sí: hay que decirle a Postman qué JSON
enviar, en el body de la petición.
- Haz clic derecho sobre la Collection → Add request.
- Nómbrala
POST artistas. - Cambia el método, a la izquierda de la barra de URL, a
POST. - En la barra de URL, escribe lo mismo de siempre:
{{baseUrl}}/artistas- Abre la pestaña Body, selecciona raw, y a la derecha cambia el
formato de
TextaJSON. - Pega un artista nuevo, sin
idy sinalbumes(esos los asigna o los completa el backend):
{ "nombre": "Shakira", "fotoArtistaUrl": "https://picsum.photos/seed/shakira/200", "paisOrigen": "Colombia", "fechaNacimiento": "1977-02-02", "biografia": "Cantante colombiana."}- Haz clic en Send.
El status de una creación exitosa no es 200, es 201 Created. Abre la
pestaña Scripts, opción Post-response, de esta nueva petición y pega:
pm.test("Status code es 201 Created", () => pm.expect(pm.response.code).to.equal(201));Haz clic en Send de nuevo y confirma el ✅ en Test Results.
10. Exportar la Collection y el Environment a tu repositorio
Sección titulada «10. Exportar la Collection y el Environment a tu repositorio»Hasta ahora la Collection y el Environment solo existen en tu Postman local: si reinstalas la app o trabajas desde otro computador, los pierdes. Expórtalos y guárdalos junto con tu código, para que queden versionados como cualquier otro archivo del proyecto.
- Haz clic derecho sobre la Collection → Export.
- Elige el formato Collection v2.1 (el que Postman recomienda por defecto) y confirma.
- Guarda el archivo
.jsondescargado dentro de tu repositorio, en una carpetacollections/en la raíz, con el nombre<Entidad>.postman_collection.json. Para el módulo de artistas:collections/Artista.postman_collection.json. - Ahora exporta también el Environment: en el selector de Environments, clic en el ícono de opciones (los tres puntos, junto al nombre del Environment) → Export.
- Guarda ese archivo en la misma carpeta, como
collections/environment.postman_environment.json. - Agrega los dos archivos a git y haz commit:
git add collections/.
10.1 Recuperarlas: importar
Sección titulada «10.1 Recuperarlas: importar»Cuando reinstales Postman o trabajes desde otro computador, haz el camino inverso: importa los archivos desde tu repositorio, primero la Collection y luego el Environment.
- Abre el menú File → Import… (o pulsa
Ctrl+O). Se abre el diálogo Use Resources, en la pestaña Import. - Abre en tu editor el archivo
collections/Artista.postman_collection.json, selecciona todo su contenido (Ctrl+A), cópialo (Ctrl+C) y pégalo en el cuadro de texto de la parte de arriba del diálogo. Postman reconoce que es una Collection y la agrega a la barra lateral. - Repite con
collections/environment.postman_environment.json: abre el diálogo de nuevo y pega su contenido. El Environment aparece en la sección Environments. - Selecciona ese Environment como en el paso 5, antes de enviar peticiones.
¿Dónde quedaste?
Sección titulada «¿Dónde quedaste?»Al final de este tutorial tienes una Collection en Postman con un
Environment configurado, y dos peticiones guardadas usando {{baseUrl}}:
GET /artistas (con un test que verifica 200 OK) y POST /artistas (con
un test que verifica 201 Created). Tanto la Collection como el
Environment ya quedaron exportados y versionados en tu repositorio, en
collections/.
Lo que viene después:
- Pruebas de API con Postman:
vas a profundizar en
pm.expect(), encadenar peticiones (POST→GET→DELETEreutilizando el mismo id) y escribir escenarios positivos y negativos paraPUTyDELETE.