Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

POST: método para crear

10/25
Recursos

Aportes 23

Preguntas 15

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Si estan usando Postman, para que de aca en adelante les sea mas facil utilizar las rutas puden crear sus Variables de Entorno.

Si apretan en ese ojito pueden agregar un nuevo grupo de varibles. En variable le damos el nombre de url y como initial value le ponemos

http://localhost:3000/api/v1

Luego para usarla en el campo de url hacemos {{url}}/products y listo 💪

Middleware:
⠀⠀
El término middleware se refiere a un sistema de software que ofrece servicios y funciones comunes para las aplicaciones. En general, el middleware se encarga de las tareas de gestión de datos, servicios de aplicaciones, mensajería, autenticación y gestión de API.
⠀⠀⠀
Ayuda a los desarrolladores a diseñar aplicaciones con mayor eficiencia. Además, actúa como hilo conductor entre las aplicaciones, los datos y los usuarios.

Para poder hacer los request en insomnia, primero deben tocar el botón “Create” y luego “Request Collection”. Luego pueden seguir todos los pasos de la clase 😄

Que rico que es aprender 🤩

Hola, Recomiendo mucho usar la extensión de **Thunder Client **en Vs code. Permite hacer todos los métodos de REST sin necesidad de salír del editor. Es muy recomendable. Pueden hecharle un ojito yendo al link. O(∩_∩)O
Link: https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client

A mi se me ocurrió la siguiente forma de solucionar el reto:

Amigos le quería recomendar esta extension de VS code, que sirve igual que Postman y esta en el mismo editor, la verdad vale la pena probarlo, además que tiene la función de mostrarte el tiempo de la respuesta y guarda el historial de todas las peticiones que haya realizado, se llama Thunder Client
![](

express.json()
  • es un método incorporado en express para reconocer el objeto de solicitud entrante como objeto JSON. Este método se llama como middleware en su aplicación usando el código:
app.use(express.json());

Fuente aca (dame click)

Por qué versionar tu API?

La razón de versionar nuestras API es para que no haya conclicto del servicio con las distintas plataformas que puedan usarlo ( Mobile nativo, IoT, Web).

Supongamos que haces un cambio de la API para mobile, simplemente le asignas un router con la v2 y dejas lo demás con la versión v1

Ejemplo

function routerApi(app) {
  const router = express.Router();
  router.use('/products', productsRouter);
  router.use('/users', usersRouter);
  router.use('/categories', categoriesRouter);
  app.use('/api/v1', router)
}

Enviar datos (POST)

Para esta clase necesitaremos un API development enviroment pueden ser Insomnia o Postman.

Lo primero que debemos hacer es crear la forma en como el servidor tratará la petición de tipo POST, en este caso lo hicimos en el endpoint de products de esta manera:


const express = require('express');
const router = express.Router();

router.post('/', (req, res) => {
  const body = req.body;
  res.json({
    message: 'created',
    data: body
  })
})

Luego usamos insomnia y le enviamos los datos que queremos testear:

{
	"name": " New Product",
	"price": 1209
}

Veremos que nos aparece el json de respuesta pero solamente con el valor de message: 'created'.

Esto es porque necesitamos aplicar un midleware nativo de express.

//index.js
app.use(express.json())

Diferencias Principales

  • El método GET coloca los parámetros dentro de la URI mientras que el método POST los agrega al cuerpo.
  • GET se utiliza esencialmente para obtener la información. En cambio, el objetivo del método POST es actualizar los datos.
  • Los resultados de la consulta POST no pueden marcarse, mientras que los resultados de la consulta GET pueden marcarse porque existen en forma de URL.
  • En el método GET la información es visible en la URL lo que aumenta las vulnerabilidades y el riesgo de hacking. Por el contrario, el método POST no muestra variables en la URL y también se pueden utilizar múltiples técnicas de codificación, lo que lo hace resistente.
  • Cuando se utiliza el método GET en el formulario, sólo se aceptan caracteres ASCII en los tipos de datos. Por el contrario, el método POST no enlaza tipos de datos de formulario y permite caracteres binarios y ASCII.
  • El tamaño variable en el método GET es de aproximadamente 2000 caracteres. A la inversa, el método POST permite hasta 8 Mb de tamaño variable.
  • Los datos del método GET se pueden almacenar en [caché], mientras que los datos del método POST no.

Middleware o lógica de intercambio de información entre aplicaciones, o Agente Intermedio, es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, o paquetes de programas, redes, hardware o sistemas operativos.

Este curso esta brutal. Estoy llenando lagunas mentales que tenía desde hace tiempo.

Por alguna razón con postman me devuelve la data vacía. Funciono con otros programas. Recomiendo la extensión de VSCode que publicó otra persona abajo Thunder Client

Para llevar a cabo el proceso en postman, la configuración en el código es el mismo. En cuanto al cliente(postman) el POST se crea desde “Body”, en la sección “Raw”, seleccionando JSON como formato de entrada.

Pueden encontrar más en la documentación oficial: Enlace

Otra que pueden usar es la extensión de Thunder Client para VSCode y funciona igual que Postman o Insomnia.

Solucione el reto de la siguiente manera, pensando en más adelante poder agregar una base de datos.

Recomiendo usar Chance en lugar de Faker, parece que algo pasó con esa librería.
“No les cuento más…”

Se ve tan pro usar postman

Hola a todos.

Para los que tengan el siguiente error:

Deben de tener cuidado de la estructura de su JSON. NO ES UN OBJETO DE JAVASCRIPT. Por lo tanto, no deben dejar comas al final. Ni caracteres extraños:

Puede ser desde:

{
	"name": "Nuevo Producto",
	"price": 250
}

Hasta:

{
	"message": "Hola"
}

Incluso lo pueden enviar vacio y funcionara:

{ }

Con vs code también se pueden hacer request yo uso Postcode

😲 Que util es la composición de routers. No sabia que esto era posible

En mac en el centro superior tiene 3 opciones, debug para la clase.

También se pueden recibir solamente los atributos que deseo renderizar y no todo el objeto:

El profe trae en el método post el objeto ‘‘body’’ y lo renderiza nuevamente todo ```
----> const body = req.body

Pero si no deseo todo el objeto puedo desestructurar el objeto y traer solo los parametros que necesito

------> const { name, price } = req.body;

Esto es importante debido a que no siempre voy a requerir renderizar  o tomar todo lo que me ingresan por body sino algo en expecifico