Insomnia y Postman
Clase 8 de 19 • Curso de Introducción al Desarrollo Backend
Contenido del curso
Clase 8 de 19 • Curso de Introducción al Desarrollo Backend
Contenido del curso
Sergio Valbuena
Alessandro Amaya Barboza
Willy Jove
Diego Geovanny Bracero
Antonio Demarco Bonino
Joel Angel David Barrantes Palacios
Gabriel Andrés Alzate Acuña
Felix Torres Javier Antonio
Eddie Andres Rios Elgueta
Jesús García
Alvaro Eduardo Garzón Pira
Brayan Lopez
Alexis Antonio Ibarra Fernández
Francisco Murillo
Venus Perez
Carlos Mauro Cárdenas Fernández
Jimer Samuel Espinoza
Erik Santiago Mantilla Agaton
Kalet Adonay Chavez Alas
Jesús alfaro
Kalet Adonay Chavez Alas
Greymar Osuna Zambrano
Santiago López Alarcón
Gonzalo Osco Hernandez
Jonathan Restan Chamorro
Adriana María Martínez Echandía
Alejandro Camayo Cabanillas
N40 M10
Alvaro Eduardo Garzón Pira
Kalet Adonay Chavez Alas
Alvaro Eduardo Garzón Pira
Jerald Jeanphierre Espinoza Flores
Fabián Chacón
Nicolas E Duque Aguirre
Juan Miguel Garcia Moreno
VSCode tienen una extension que se llama THUNDER CLIENT, hace lo mismo que insomnia o Postman, pero dentro del editor!
También pueden utilizar otra extension que se llama REST Client que hace la misma función, por si la quieren probar 😁
También hay otra llamda RapidAPI Client :D
Necesitas ayuda? 👇
Recordemos que para dar instrucciones a la API tenemos diferentes métodos para llevarlas a cabo:
Create (crear) → POST. Read (leer) → GET. Update (actualizar) → PUT / PATCH. Delete (eliminar) → DELETE.
Estas las configuramos en insomnia antes de hacer una petición a la FakeAPI de la siguiente manera:
Obtener todas las categorías (GET)
[GET] https://api.escuelajs.co/api/v1/categories
[ { "id": 1, "name": "Clothes", "image": "https://placeimg.com/640/480/any" } // ... ]
Obtener una sola categoría (GET)
[GET] https://api.escuelajs.co/api/v1/categories/1
{ "id": 1, "name": "Clothes", "image": "https://placeimg.com/640/480/any" }
Crear una categoría (POST)
[POST] https://api.escuelajs.co/api/v1/categories/
Body de tipo JSON:
{ "name": "Mi nueva categoría", "image": "https://placeimg.com/640/480/any" }
Actualizar categoría (PUT)
[PUT] https://api.escuelajs.co/api/v1/categories/1
Body tipo JSON:
{ "name": "Change name" }
No es necesario enviar todos los atributos, es suficiente con el atributo que deseamos actualizar.
.
Eliminar Categoría (DELETE)
[DELETE] https://api.escuelajs.co/api/v1/categories/1
Por alguna razón este método regresa un 404, pero si creamos un nuevo producto si podemos eliminarlo, les muestro a continuación a modo de práctica si te quedaste con las ganas de usarlo.
.
Eliminando un producto con DELETE
Primero necesitamos crear un producto utilizando la siguiente petición y enviando el body (JSON) correctamente:
Petición
[POST] https://api.escuelajs.co/api/v1/products/
Body
{ "title": "Mi nuevo producto", "price": 100, "description": "soy una descripcion", "categoryId": 1, "images": ["https://placeimg.com/640/480/any"] }
Deberia generarse un 201 Una vez enviado obtendremos de respuesta algo asi :
{ "title": "Mi nuevo producto", "price": 100, "description": "soy una descripcion xD", "images": [ "https://placeimg.com/640/480/any" ], "category": { "id": 1, "name": "Clothes", "keyLoremSpace": "fashion", "image": "https://api.lorem.space/image/fashion?w=640&h=480&r=2908" }, "id": 219 }
Donde el "id" final es el identificador de nuestro producto, lo usaremos para buscarlo y verificar que existe y para eliminarlo
Obteniendo el nuevo producto
[GET] https://api.escuelajs.co/api/v1/products/219
Eliminando el nuevo producto
[DELETE] https://api.escuelajs.co/api/v1/products/219
Verificando eliminación
[GET] https://api.escuelajs.co/api/v1/products/219
En este punto deberia generarse un error 404
Si esta información te fue útil, dale un 💚 y recuerda #nunca_pares_de_ayudar
Muchas gracias Diego. Lo voy a probar. #NuncaParesDeAyudar
obvio que no vas a poder eliminar los productos que no creas, porque son parte del api y segura tiene una validación y lanza un response del tipo 400 y tantos , porque sino otro podria usar la api y no encontraría ningún producto cuando haga un get :-)
Excelente la API en vivo!!!!!!!!!!!
Acá les dejo el enlace:
creo que no está funcionado
Funciona, pero no como página de navegador. Igualmente replica la clase y verás
5 Insights que debes conocer sobre las API REST:
⠀
⠀ 1- Son stateless. Cada petición que se realiza debe contener toda la información necesaria para ser entendida y procesada, y no se mantiene ninguna información sobre las peticiones previas. ⠀ 2- Las API REST (REpresentational State Transfer) son actualmente uno de los estándares más utilizados para el desarrollo de servicios web. ⠀ 3- Exponen recursos (o Endpoints) en forma de URLs, y utilizar un formato como JSON o XML para intercambiar datos. Lo que vimos en el curso como el body de la petición. ⠀ 4- Tal como lo vimos en clase, se basan en el protocolo HTTP, por lo que se utilizan verbos como GET, POST, PUT y DELETE para realizar operaciones en los recursos de una API. ⠀ 5- Deben seguir los principios de diseño REST, como la utilización de URIs adecuadas y la estructuración correcta de las respuestas HTTP para garantizar una correcta implementación.
¡Hola!
Corrijanme por favor si estoy equivocado, pero creería que deberían de habilitar también PATCH para la API de Platzi Fake Store, esto lo menciono porque al realizar una petición con método PUT a esta API, permite actualizar solo uno de los campos y no todos, pero cuando se van a realizar actualizaciones parciales, existe PATCH. PUT es cuando se va a cambiar practicamente todos los valores, posiblemente una actualización completa de la entidad, con esto se aseguraría la idempotencia según el estandar REST, también PUT es para asegurarse que el estado final del recurso será identico al que envió, quizás para temas educativos está bien que no se cumpla el estandar como una camisa de fuerza pero también siento que si nos acostumbramos a seguir el estandar desde un principio, no tendremos tantos estrellones en la vida laboral, solo siento que podría ser una recomendación ya que al intentar realizar PATCH en estos momentos, me arroja que no lo tienen contemplado en el backend de categorias:
"message": "Cannot PATCH /api/v1/categories/21",
¡Gracias!
Fuente: RFC5789 BBVA Next Tech
Es un buen aporte, aunque debes tener en cuenta que incluso en la vida laboral muchas de esas reglas no se cumplen. He trabajado en empresas donde implementan REST de forma parcial, no siguen todas las reglas al pie de la letra.
hola si pude borrar la informacion ,la clave es borrar la que uno mismo creo, ya que el sistema no deja borrar las que estan prederminadas en la aplicacion de platzi.
yo pude borrar cualquiera
Me pasa igual, solo pude borrar la que yo cree
Esta bien usable insomia
No puedo eliminarlaaaaaaa
Me pasó igual, quería eliminar que había creado pero me sale código de error 404 :( ¿Al final si pudiste?
Puede que el id que mandaste en la peticion no exista,aunque todo depende de el codigo http que te haya respondido el backend
Delete
Si usan Visual Studio code, pueden usar la extension Thunder client,que sirve para lo mismo!!
Gracias por la informacion!!!!
Súpe, me gustó bastante esta clase.
Existen infinidad de clientes Rest, pero sin dudo Postman es de los mas completos, permitiendote generar documentacion, crear tus API test y permitirte tener colleciones compartidas. Una funcion que me encanta y ayuda mucho es la de importar unn resquest en formato curl simplemento copiando este desde el devtools del chrome
intente eliminar el producto de otra persona y no pude retornaba error, luego intente eliminar uno que yo mismo habia creado y todos salio bien.
Me pasó igual a mi!
Cuidado al usar thunder client, la funcionalidad básica es de pago (entornos), así que no vale la pena. Tenga en cuenta que si excede el límite de solicitudes, no podrá abrir las que creó anteriormente.
Para linux no ubuntu: https://github.com/Kong/insomnia para arch esta en aur insomnia-gir. PD: si utiliza electron...
¡Hola Nicolas!
El DELETE no está funcionando para el endpoint de las categorias:
si haces un get a la url: https://api.escuelajs.co/api/v1/categories, te mostrara que solo existen 10 categorias, con id de el 1 al 10,entonces tu estas mandando el id 21,lo cual no existe,es por eso que te responde not found!!
¡Hola! Gracias por tu respuesta, aunque dudo que sea lo que indicas, el día que envié la solicitud DELETE previamente le había hecho un POST para crear una categoria con mi nombre y me arrojó el id 21, al intentar eliminarla, me arrojó ese error, incluso, podrás ver que me responde un GET con id 1:
"Cannot DELETE /api/v1/categories/1"
Creería que esto proviene del framework express.js que es un mensaje que arroja cuando no se ha creado la ruta para este endpoint con el método delete, es decir, creería que hace falta un
app.delete('/api/v1/categories/1', function(req, res))
por algún lado o no está contemplando de manera correcta el endpoint.
Me acomodo más con Insomnia que con Postman... Gracias por usarla
Muy bien explicado y bastante práctica la clase. No conocía la herramienta de Insomnia, muy interesante
También se puede hacer el ejercicio usando postman con la extensión de visual studio code.
Este curso es el que me hacia falta para poder unir los conceptos de Front/Back/DB.
Joder!!
Es de lo mejor que me he encontrado en internet!! y el profe lo dice todo muy bien molidito.
Que nivel de profesionalismo y dedicacion!
Gracias al profe y gracias a Freddy