Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

GET: recibir parámetros

6/25
Recursos

Aportes 32

Preguntas 5

Ordenar por:

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

Para los que como yo, no sabíamos que es endpoints la palabra que tanto utiliza el profe:

Los endpoints son las URLs de un API o un backend que responden a una petición. Los mismos entrypoints tienen que calzar con un endpoint para existir. Algo debe responder para que se renderice un sitio con sentido para el visitante.

Estos son los get que añadí

app.get('/categories/:categoryId',(req,res)=>{
  const {categoryId}= req.params
  res.json([
    {
      categoryId,
      category: 'Food',
      products: []
    }
  ])
})

app.get('/categories',(req,res)=>{
  const {categoryId}= req.params
  res.json([
    {
      categoryId,
      category: 'Food',
      products: []
    },
    {
      categoryId,
      category: 'Games',
      products: []
    },
    {
      categoryId,
      category: 'clothes',
      products: []
    },
  ])
})

Por favor ayuda! este video no tiene absolutamente nada en relacion con Get: recibir parametros. Nicolas esta hablando de pooling un tema de PostgressSQL. Por favor areglen esto.

Por favor arreglen esto! En la descripción aparece GET: recibir parámetros, y Nicolás esta hablando es de pooling con postgresSQL. por los visto se cruzaron los videos.

const express = require("express");
const app = express();
const PORT = 3000;

app.get('/', (req, res) => {
    res.send('Hello crayola');
});

app.get('/route-new', (req, res) => {
    res.send('Hola soy una nueva ruta o endpoint');
});

app.get('/products', (req, res) => {
    res.json([{
            name: 'Laptop Gamer',
            price: 23000,
        },
        {
            name: 'iPhone X3',
            price: 32000,
        }
    ]);
});

app.get('/products/:id', (req, res) => {
    const { id } = req.params;
    res.json({
        id,
        name: 'iPhone X3',
        price: 32000,
    });
});

app.get('/categories/:categoryId/products/:productId', (req, res) => {
    const { categoryId, productId } = req.params;
    res.json({
        categoryId,
        productId
    });
});

app.get('/categories/:categoryId', (req, res) => {
    const { categoryId } = req.params;
    res.json({
        categoryId,
        category: 'Computers & Accesories'
    });
});

app.get('/people', (req, res) => {
    res.json([{
        name: 'Arturo',
        type: 'employee'
    }, {
        name: 'Jimena',
        type: 'customer'
    }]);
});

app.get('/people/:id', (req, res) => {
    const { id } = req.params;
    res.json({
        id,
        name: 'Arturo',
        type: 'employee'
    });
});

app.listen(PORT, () => {
    console.log('Mi puerto es: ' + PORT);
})

Acá dejo un aporte usando condicionales para validar el Id de la categoría y retorna diferente json.

app.get('/categories/:categoryId', (req, res) => {
  const {categoryId} = req.params;
  console.log(categoryId);
  if (categoryId === 1) {
    res.json({
      categoryId,
      name: 'Food',
      products: 1000
    })
  }
  res.json({
    categoryId,
    name: 'Others',
    products: 2000
  })
})

No sé si soy el unico con el problema pero se me reproduce un video del ‘Curso de Backend con Node.js: Base de Datos con PostgreSQL’ en vez del video de este curso.

Si tienen algunas dudas sobre algunos temas sobre el Desarrollo Backend, les recomiendo que pasen por este curso del profesor Facundo, Curso de Introducción al Desarrollo Backend Explica conceptos como Endpoints, servidor, flujo de desarrollo, tipos de hosting (IaaS, PaaS, SaaS) y otros temas interesantes 😃. Lo mejor? Dura solo una hora.

Yo imaginé el caso de consultas por diferentes criterios y asumo que la validación de los criterios es tarea del frontend. Por ejemplo, en una búsqueda de personas que pueden tener diferentes roles en un colegio, podríamos hacer búsquedas por nombre, apellido, rol(es) e identificador. Validamos en el frontend el criterio de búsqueda y hacemos al backend la petición que corresponda. Así, en el backend mis endpoints serían:

// ENDPOINTS DE BÚSQUEDA DE PERSONAS
//PARA PERSONAS (todas)
// todas, apellido, nombre, cedula, rol
app.get('/personas', (req, res) => {
  res.json([
    {
      id: "11.111.111",
      lastnames: 'Lombardi González',
      Names: 'Pedro Augusto',
      roles: ["estudiante"],
      foto: "File",
  },
  {
    id: "11.111.112",
    lastnames: 'Lombardi Egurrola',
    Names: 'Pedro Jesús',
    roles: ["representante", "docente", "administrativo"],
    foto: "File",
  },
  {
    id: "11.111.113",
    lastnames: 'González de Lombardi',
    Names: 'Eunice Margarita',
    roles: ["representante", "administrativo"],
    foto: "File",
  },
  {
    id: "11.111.114",
    lastnames: 'Duarte Arambule',
    Names: 'Alfonsina Rosario',
    roles: ["administrativo"],
    foto: "File",
  },
  {
    id: "11.111.115",
    lastnames: 'Pachuca Duarte',
    Names: 'María Rosa',
    roles: ["representante"],
    foto: "File",
  },
  {
    id: "11.111.116",
    lastnames: 'Reyes de Molina',
    Names: 'Elisa Margarita',
    roles: ["docente"],
    foto: "File",
  },
  {
    id: "11.111.117",
    lastnames: 'García Padrón',
    Names: 'Oswaldo José',
    roles: ["apoyo"],
    foto: "File",
  },
  {
    id: "11.111.118",
    lastnames: 'Buitriado Paz',
    Names: 'Gilberto Alejandro',
    roles: ["estudiante"],
    foto: "File",
  },
  {
    id: "11.111.119",
    lastnames: 'Cancino Ferrer',
    Names: 'Gonzalo José',
    roles: ["estudiante"],
    foto: "File",
  },
  {
    id: "11.111.120",
    lastnames: 'Medina Lombardi',
    Names: 'Augusto Alejandro',
    roles: ["estudiante"],
    foto: "File",
  },
  {
    id: "11.111.121",
    lastnames: 'Medina Lombardi',
    Names: 'Isabel Josefina',
    roles: ["estudiante"],
    foto: "File",
  },
  {
    id: "11.111.122",
    lastnames: 'Perdomo Lombardi',
    Names: 'Mario Ramón',
    roles: ["representante"],
    foto: "File",
  }
]);
})

//PARA PERSONAS (todas por Apellido)
app.get('/personas/apellido/:lastname', (req, res) => {
  const {lastname} = req.params;
  res.json([
    {
      id: "11.111.111",
      lastnames: 'Lombardi González',
      Names: 'Pedro Augusto',
      roles: ["estudiante"],
      foto: "File",
  },
  {
    id: "11.111.112",
    lastnames: 'Lombardi Egurrola',
    Names: 'Pedro Jesús',
    roles: ["representante", "docente", "administrativo"],
    foto: "File",
  },
  {
    id: "11.111.113",
    lastnames: 'González de Lombardi',
    Names: 'Eunice Margarita',
    roles: ["representante", "administrativo"],
    foto: "File",
  },
  {
    id: "11.111.120",
    lastnames: 'Medina Lombardi',
    Names: 'Augusto Alejandro',
    roles: ["estudiante"],
    foto: "File",
  },
  {
    id: "11.111.121",
    lastnames: 'Medina Lombardi',
    Names: 'Isabel Josefina',
    roles: ["estudiante"],
    foto: "File",
  },
  {
    id: "11.111.122",
    lastnames: 'Perdomo Lombardi',
    Names: 'Mario Ramón',
    roles: ["representante"],
    foto: "File",
  }
]);
})

//PARA PERSONAS (por nombre)
app.get('/personas/nombre/:name', (req, res) => {
  const {name} = req.params;
  res.json([
    {
      id: "11.111.111",
      lastnames: 'Lombardi González',
      Names: 'Pedro Augusto',
      roles: ["estudiante"],
      foto: "File",
  },
  {
    id: "11.111.112",
    lastnames: 'Lombardi Egurrola',
    Names: 'Pedro Jesús',
    roles: ["representante", "docente", "administrativo"],
    foto: "File",
  },
]);
})

//PARA PERSONAS (por cedula)
app.get('/personas/:id', (req, res) => {
  const {id} = req.params;
  res.json(
    {
      id,
      lastnames: 'Lombardi González',
      Names: 'Pedro Augusto',
      roles: ["estudiante"],
      foto: "File",
  }
);
})


//PARA PERSONAS (todas por rol o roles, en este caso representantes y administrativos)

app.get('/personas/roles/:roles', (req, res) => {
  const {roles} = req.params;
  res.json(["resultados para: " + roles,
  {
    id: "11.111.112",
    lastnames: 'Lombardi Egurrola',
    Names: 'Pedro Jesús',
    roles: ["representante", "docente", "administrativo"],
    foto: "File",
  },
  {
    id: "11.111.113",
    lastnames: 'González de Lombardi',
    Names: 'Eunice Margarita',
    roles: ["representante", "administrativo"],
    foto: "File",
  },
  {
    id: "11.111.115",
    lastnames: 'Pachuca Duarte',
    Names: 'María Rosa',
    roles: ["representante"],
    foto: "File",
  },
  {
    id: "11.111.122",
    lastnames: 'Perdomo García',
    Names: 'Mario Ramón',
    roles: ["representante"],
    foto: "File",
  }
]);
})

Ver esta clase, me hizo entender cómo funciona los parametro y cómo lo hace Platzi con https://platzi.com/clases/2485-backend-nodejs/42215-get-recibir-parametros/

Es algo fascinante e increible 🌟.
Ya no veré las URL de la misma manera 😂.

Agregando productos, categorías y clientes

app.get('/products/:id' , (req,res)=>{
  const {id} = req.params
  res.json({
    id,
    name:'Jabon',
    price:2000,
    available:true
  })
} )

app.get('/categories/:id' , (req,res)=>{
  const {id} = req.params
  res.json({
    id,
    name:'Limpieza',
    products:13
  })
} )

app.get('/clients/:id' , (req,res)=>{
  const {id} = req.params
  res.json({
    id,
    firstName:'Nicolas',
    lastName:'Molina'
  })
} )

Preciso ayuda: añadí el get al array categories pero el id de todos es el mismo. No sé si no comprendí bien la clase ¿Debo hacer un endpoint por cada categoría? Gracias

Lo hice de One piece, me gusta como proyecto inicial

const express = require("express");
const app = express();
const port = 3000;

app.get("/", (req, res) => {
  res.send("Hello! I'm your new e-commerce :D");
});

app.get("/new-rute", (req,res) => {
  res.send("Hello, I'm a new rute");
});

app.get("/characters", (req,res) => {
  res.json([{
    categorie: "character",
    name: "Monkey D. Luffy",
    phrase: "I'll become pirate king"
  }, {

    categorie: "character",
    name: "Nami",
    phrase: "I'll make the world map"
  }, {
    categorie: "character",
    name: "Vizmoke Sanji",
    phrase: "I'll find the All Blue"
  }]);
});

const characters_phrases = "/characters/:id/phrase/:phraseId";
app.get(characters_phrases, (req,res) => {
  const { id, phraseId } = req.params
  res.json({
    id,
    phraseId
  });
});

const family = "/characters/:id/phrase/:phraseId";
app.get(family, (req,res) => {
  const { id, phraseId } = req.params
  res.json({
    id,
    phraseId
  });
});


app.get("/categories/:categoryId/characters/:id", (req,res) => {
  const {categoryId, id} = req.params;
  res.json({
    categoryId,
    id
  })
})

app.listen(port,() => {
  console.log("My port" + port);
});

// Install JSON Viewer as navigator extention

app.get('/products', (req, res) => {
  res.json([
    {
      name: 'Product One',
      price: 1000},
    {
      name: 'Product Two',
      price: 1000},
    ])
})

app.get('/products/:id', (req, res) => {
  const { id } = req.params;
  res.json({
    id,
    name: 'Product Id One',
    price: 1000,
  })
})
app.get('/category/:id', (req, res) => {
  const { id } = req.params;
  res.json({
    id,
    categoryName: 'ProdOrganic Products',
  })
})

app.get('/categories/:categoryId/products/:productsId', (req, res) => {
  const { categoryId, productsId } = req.params;
  res.json({
    categoryId,
    productsId,
    name: 'Organic Products',
    collection: [
      {
        name: 'Organic Coffe',
        price: 35,
      },
      {
        name: 'fresh Lettuce',
        price: 35,
      }
    ]
  })
})

app.get('/users/:id', (req, res) => {
  const { id } = req.params;
  res.json({
    id,
    userName: 'Leon Licona',
    town: 'Ciudad de México'
  })
})
const express = require('express');

const app = express();

const port = 3000;

let categories = [
  {
    name: 'Food',
    products: [
      {
        name: 'product 1',
        price: 5000,
      },
      {
        name: 'product 2',
        price: 10000,
      },
    ],
  },
];

let products = [];
categories.forEach((category) => {
  category.products.forEach((product) => {
    products.push(product);
  });
});

app.get('/', (request, response) => {
  response.send('Hello this is my express server');
});

app.get('/new-route', (request, response) => {
  response.send('Hello I am a new endpoint');
});

app.get('/products', (request, response) => {
  response.json(products);
});

// Use of id
app.get('/products/:id', (request, response) => {
  try {
    const { id } = request.params;
    let product = products[id];
    product.id = id;
    response.json(product);
  } catch {
    response.json({ error: 'Product not found' });
  }
});

//multi params
app.get('/categories/:categoryId/products/:productId', (request, response) => {
  const { categoryId, productId } = request.params;
  const product = categories[categoryId].products[productId];
  response.json(product);
});

app.listen(port, () => {
  console.log('My port :' + port)
});

Hola compañeros, el profesor llega a mencionar endpoints, pero no le da una explicación. Para ello recomiendo checarlo en el siguiente link
. Después de leerlo más de una vez por fin logré entenderlo.

Escribí las rutas GET a las que necesita responder la API de acuerdo a las vistas que se desarrollan en el Curso Práctico de Frontend Developer.
Si me hizo falta alguna, escríbanla en los comentarios para expandir este aporte 😄

app.get('/', (req, res) => {
  res.send('<h1>YardSale</h1>');
});

app.get('/products', (req, res) => {
  res.json([
    {
      id: 1,
      name: 'Product 1',
      image: '#',
      description: 'Description of product 1',
      price: 49.99
    },
    {
      id: 2,
      name: 'Product 2',
      image: '#',
      description: 'Description of product 2',
      price: 60.00
    }
  ]);
});

app.get('/products/:id', (req, res) => {
  const { id } = req.params;
  res.json({
    id,
    name: 'Product ' + id,
    image: '#',
    description: 'Description of product ' + id,
    price: 60.00
  })
});

app.get('/categories', (req, res) => {
  res.json([
    {
      id: 1,
      name: 'Category 1',
    },
    {
      id: 2,
      name: 'Category 2',
    }
  ]);
});

app.get('/categories/:id', (req, res) => {
  const { id } = req.params;
  res.json({
    id,
    name: 'Category ' + id
  });
});

app.get('/categories/:categoryId/products/:productId', (req, res) => {
  const { categoryId, productId } = req.params;
  res.json({
    categoryId,
    productId
  });
});

app.get('/users', (req, res) => {
  res.json([
    {
      id: 1,
      name: 'User 1',
      email: '[email protected]',
      password: '123456'
    },
    {
      id: 2,
      name: 'User 2',
      email: '[email protected]',
      password: '654321'
    }
  ]);
});

app.get('/users/:id', (req, res) => {
  const { id } = req.params;
  res.json({
    id,
    name: 'User ' + id,
    email: 'user' + id + '@mail.com',
    password: 123456
  });
});

app.get('/users/:id/orders', (req, res) => {
  const { id } = req.params;
  res.json([
    {
      userId: id,
      orderName: 'Order 1'
    },
    {
      userId: id,
      orderName: 'Order 2'
    }
  ]);
});

app.get('/users/:userId/orders/:orderId', (req, res) => {
  const { userId, orderId } = req.params;
  res.json({
    userId,
    orderId
  });
});

Algunas Rutas

const express = require('express');

const app = express();

const port = 3434;


app.get('/', (req, res) => {
  res.send('<h1>Welcome!</h1><p>this is server whit express!</p>');
})

app.get('/home', (req, res) => {
  res.send('<h1>Home</h1><p>this is the Home</p>')
})

app.get('/product', (req, res) => {
  res.json([
    {
      nombre: "Product 1",
      precio: 234
    },
    {
      nombre: "Product 2",
      precio: 223
    },
    {
      nombre: "Product 3",
      precio: 123
    },
    {
      nombre: "Product 4",
      precio: 423
    },
    {
      nombre: "Product 5",
      precio: 312
    }
  ])
})

app.get('/categories', (req, res) => {
  res.json([
    {
      nombre: "Category 1",
      cantidad: 234
    },
    {
      nombre: "Category 2",
      cantidad: 223
    },
    {
      nombre: "Category 3",
      cantidad: 123
    },
    {
      nombre: "Category 4",
      cantidad: 423
    },
    {
      nombre: "Category 5",
      cantidad: 312
    }
  ])
})

app.get('/users', (req, res) => {
  res.json([
    {
      nombre: "User 1",
      age: 34
    },
    {
      nombre: "User 2",
      age: 32
    },
    {
      nombre: "User 3",
      age: 25
    },
    {
      nombre: "User 4",
      age: 40
    },
    {
      nombre: "User 5",
      age: 27
    }
  ])
})

app.get('/categories/:id', (req, res) => {
  const id = req.params.id;
  res.json(
    {
      id,
      nombre: `Category ${id}`,
      cantidad: 312
    }
  )
})

app.get('/product/:id', (req, res) => {
  const id = req.params.id;
  res.json(
    {
      id,
      nombre: `Product ${id}`,
      precio: 390
    }
  )
})

app.get('/users/:id', (req, res) => {
  const id = req.params.id;
  res.json(
    {
      id,
      nombre: `User ${id}`,
      age: 27
    }
  )
})

app.get('/categories/:categoryId/product/:productId', (req, res) => {
  const { categoryId, productId } = req.params;
  res.json(
    {
      categoryId,
      productId
    }
  )
})

app.get('/users/:userId/categories/:categoryId/product/:productId', (req, res) => {
  const { userId, categoryId, productId } = req.params;
  res.json(
    {
      userId,
      categoryId,
      productId
    }
  )
})

app.listen(port, () => {
  console.log(`run server in port: ${port}`);
})

Excelente, ya puedo tener los parametros en variables!!.

En mi caso agregue get para empleados:

app.get('/employeds/:id' , (req,res)=>{
  const {id} = req.params
  res.json({
    id,
    firstName:'Ramon',
    lastName:'Quijada'
  })
})

Tambien para clientes:

app.get('/clients/:clientId' , (req,res)=>{
  const { clientId } = req.params
  res.json({
    id,
    firstName:'Elias',
    lastName:'Estrabao'
  })
})
//call express
const express = require('express')
//create a intance of express
const app = express()
const port = 5001;


//Make a route en response a text in that route
app.get('/', (req, res) =>{
    res.send("This is the coco server, and coco want to say HELLO WORLD!!!")
})

//listen with the express's intence the port 5001
app.listen(port, ()=>{
    console.log("server running!!!")
})



app.get('/coco-products', (req, res) =>{
    res.json([{
        name: "coconut",
        price: "150.00$"
    },{
        name: "papaya",
        price: "150.00$"
    },
    {
        name: "banana",
        price: "150.00$"
    }])
})

app.get(("/coco-products/:name"), (req, res) =>{
    let fruts = [{
        name: "coconut",
        price: "150.00$"
    },{
        name: "papaya",
        price: "150.00$"
    },
    {
        name: "banana",
        price: "150.00$"
    }]

const {name} =  req.params
res.json(fruts.filter((element)=> element.name === name))
})

Se puede hacer el ejemplo de los parametros dentro de un arreglo?. Es bueno o es malo?

Si les queda gustando el tema de las apis y como mezclar estos conocimientos con el frontend y no solo backend les recomiendo el curso de VueJS o ReactJS, son librerias y frameworks increibles ❤️

Un Endpoint / Route / Path (conocidos con esos tres nombres), es una sección de la URL de nuestro proyecto.
Por ejemplo: https://twitter.com/api/tweets

Los endpoints que nos van a permitir hacer un CRUD (Create, Read, Update and Delete).

app.get(’/categories/:categoryId/products/:productsID’, (req, res) => {

const { categoryId } = req.params;
const { productsID } = req.params;

res.json({
categoryId,
productsID
})

});

endpoint son las URL de una API
(resumido)

Dejo a porte del reto.

Excelente conocimiento adquirido para la creación de APIs.
Mi Solución:
Lista de productos:


Detalle del producto:

ID del usuario:

Se pueden obtener los elementos o parametros de dos maneras con params:

const {nombreVariable} = req.params;

//o en el elemplo del profe.

res.json( { 
	req.params.categoryId,
	req.params.categoryId,
});

Mi ejemplo de endpoint:

app.get('/users/:userId/orders/:orderId', (req, res) => {
  const { userId, orderId } = req.params;
  res.json([
    {
      userId,
      orderId,
    },
    {
      name: 'Iphone 12',
      price: '4900',
    },
    {
      name: 'Bycicle BMX1200',
      price: '6900',
    },
  ]);
});

Agregando vendedores y clientes como ejemplo

app.get('/products', (req, res)=>{
  res.json([
    {
      name: 'Jordan',
      price: 100,
      categoryId: '1'
    },
    {
      name: 'Levis 505',
      price: 200,
      categoryId: 2
    }
  ]);
})

app.get('/products/:id', (req, res)=>{
  const { id } = req.params.id;
  res.json({
    id,
    name: '‎Nike Air Huarache',
    price: 150,
    categoryId: 1
  });
})

app.get('/categories', (req, res)=>{
  res.json([
    {
      id: 1,
      name: 'Foods',
      product: 100
    },
    {
      id: 2,
      name: 'Pants',
      price: 20
    }
  ]);
})

app.get('/categories/:categoryId', (req, res)=>{
  const { categoryId } = req.params;
  res.json({
      id: categoryId,
      name: 'Pants',
      products: 5
  });
})

app.get('/categories/:categoryId/products/:productId', (req, res)=>{
  const { categoryId, productId } = req.params;
  res.json({
    categoryId,
    productId
  });
})

app.get('/vendor', (req, res)=>{
  res.json([
    {
      id: 1,
      name: 'Ripli',
      sales: 10
    },
    {
      id: 2,
      name: 'Zara',
      sales: 20
    }
  ]);
})

app.get('/vendor/:vendorId', (req, res)=>{
  const { vendorId } = req.params;
  res.json({
      id: vendorId,
      name: 'Zara',
      sales: 20
  });
})

app.get('/clients', (req, res)=>{
  res.json([
    {
      id: 1,
      firstName:'Jose',
      lastName:'Contreras',
      country: 'Venezuela'
    },
    {
      id: 2,
      firstName:'Alberto',
      lastName:'Colinas',
      country: 'Colombia'
    },
    {
      id: 3,
      firstName:'Alberto',
      lastName:'Torres',
      country: 'Peru'
    }
  ]);
})

app.get('/clients/:clientId', (req, res)=>{
  const { clientId } = req.params;
  res.json({
      id: clientId,
      firstName:'Jose',
      lastName:'Contreras',
      country: 'Venezuela'
  });
})